home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / bbs / jdrbbs10.zip / DOCS_ETC.ZIP / DOCS.DOC < prev    next >
Text File  |  1994-12-22  |  432KB  |  7,891 lines

  1.  
  2.                                  Juggernaut .10
  3.  
  4.  
  5.        Juggernaut is a complete Computer Bulletin Board System (BBS).  It 
  6.        has the power to do everything you expect from your BBS software, 
  7.        and the flexibility to do its job in whatever manner you desire. 
  8.  
  9.        This software contains completely original programming, with many 
  10.        new, and unique, ideas and methods.  Including unlimited expansion 
  11.        and growth potential.  Incorporating much in itself that other 
  12.        programs rely on 3rd-party software to accomplish. 
  13.  
  14.        The interface is FAST!  Logging on and doing things are all 
  15.        optimized in the interface.  Hot-key menu action on all things. 
  16.  
  17.        The software is balanced.  Users and sysops have many options, and 
  18.        much power, at their control. 
  19.  
  20.        Raw POWER!  Let the adventure begin...
  21.  
  22.  
  23.  
  24. CONTENTS        WHY SETUP A BBS? ...........................................1
  25.                 ORGANIZATION ...............................................2
  26.                 LIMITS .....................................................3
  27.                 NOTICE .....................................................4
  28.                 REGISTRATION ...............................................5
  29.                   Registered package .......................................6
  30.                 DISCLAIMER .................................................8
  31.                 SUPPORT ....................................................9
  32.                 STARTING UP ...............................................10
  33.                 TRY OUT ...................................................11
  34.                 RESTARTING ................................................13
  35.                   Config ..................................................14
  36.                 INPUTING ..................................................16
  37.                   Censoring ...............................................17
  38.                   Active spelling checker .................................18
  39.                   Search string chopper ...................................18
  40.                   Internal Menus ..........................................19
  41.                 CONSOLE KEYS ..............................................20
  42.                   From <alt>d .............................................20
  43.                   When a user is on-line ..................................20
  44.                   Definable ...............................................21
  45.                   Misc. ...................................................22
  46.                 LOGGING ...................................................23
  47.                   Callers log .............................................23
  48.                   Errors log ..............................................24
  49.                   Session log .............................................24
  50.                   Chat log ................................................24
  51.                 EH? .......................................................24
  52.                 LOGIN .....................................................25
  53.                   User Names ..............................................25
  54.                   Login (cont.) ...........................................26
  55.                 READING MESSAGES ..........................................27
  56.                   Header ..................................................27
  57.                   Body ....................................................27
  58.                   Footer ..................................................28
  59.                   Commands ................................................28
  60.                     ? .....................................................29
  61.                     [Enter] ...............................................29
  62.                     <right>/<tab> .........................................29
  63.                     <down>/+ ..............................................29
  64.                     <left>/<backspace> ....................................29
  65.                     <up>/- ................................................29
  66.                     Again .................................................29
  67.                     Continue message ......................................29
  68.                     Delete ................................................29
  69.                     Edit ..................................................29
  70.                     Forward ...............................................30
  71.                     Get files .............................................30
  72.                     Give files ............................................31
  73.                     Next ..................................................31
  74.                     Previous ..............................................31
  75.                     Quit ..................................................31
  76.  
  77.  
  78.  
  79.                     Reply .................................................31
  80.                     View a file attach ....................................31
  81.                     eXit to menu ..........................................32
  82.                   Sysop Commands ..........................................32
  83.                   Misc. ...................................................33
  84.                 ENTERING MESSAGES .........................................34
  85.                   Heading Line ............................................34
  86.                   In ......................................................34
  87.                   To ......................................................34
  88.                   Subject .................................................35
  89.                   At ......................................................35
  90.                   Line numbers ............................................36
  91.                   Quote original ..........................................36
  92.                   Upload message ..........................................36
  93.                   Carbon Copies ...........................................37
  94.                   File Attaches ...........................................37
  95.                   Reception Report ........................................37
  96.                   Encrypt .................................................38
  97.                   Do A Freq ...............................................38
  98.                   Net FAs .................................................38
  99.                   Body ....................................................38
  100.                   Command Line ............................................39
  101.                     % .....................................................40
  102.                     Abort .................................................40
  103.                     Continue entering .....................................40
  104.                     Delete lines ..........................................40
  105.                     Edit ..................................................40
  106.                     Finish later ..........................................40
  107.                     Grammar check .........................................41
  108.                     Insert lines ..........................................41
  109.                     List ..................................................41
  110.                     Preview ...............................................41
  111.                     Save ..................................................42
  112.                 MESSAGE FILES .............................................43
  113.                 RAMBLINGS .................................................45
  114.                 FILE AREA CONTENTS LISTING ................................46
  115.                   Paged System ............................................46
  116.                     The display ...........................................46
  117.                     Command line ..........................................47
  118.                     User commands .........................................48
  119.                     Sysop/File-Op commands ................................50
  120.                     Auto-delete curses ....................................52
  121.                   Point & Shoot File Selection and Information System .....53
  122.                 DOWNLOADING ...............................................55
  123.                 UPLOADING .................................................58
  124.                   Searching ...............................................59
  125.                   File Descriptions .......................................59
  126.                 REMOVING FILES ............................................61
  127.                 MISC. .....................................................63
  128.                 I AM LOST!?! ..............................................64
  129.                 CUSTOMIZING 101 ...........................................65
  130.                 TOGGLES ...................................................66
  131.  
  132.  
  133.  
  134.                 SETTINGS ..................................................67
  135.                 PATHNAMES .................................................68
  136.                 MENU COMMANDS .............................................69
  137.                 ANSI'S ....................................................70
  138.                 CONVERSION ................................................71
  139.                 MODEM SETUP ...............................................72
  140.                   Example .................................................73
  141.                   CONNECTs DB .............................................74
  142.                   Throughput ..............................................75
  143.                 TERMINAL PROGRAM ..........................................76
  144.                   Dialer ..................................................76
  145.                   Command Line ............................................76
  146.                   Misc. ...................................................77
  147.                 CUSTOMIZING 201 ...........................................80
  148.                 SECURITY LEVELS ...........................................83
  149.                   Ghosting ................................................83
  150.                 SYSOPS ....................................................85
  151.                   Co-Sysop's ..............................................85
  152.                   File-Op's ...............................................85
  153.                 FILE AREAS ................................................87
  154.                   Defining ................................................87
  155.                   Menus ...................................................93
  156.                   Diagrammed File Examples ................................95
  157.                   Files In Area ...........................................97
  158.                   CD-ROM's ................................................98
  159.                   Special Cases ...........................................98
  160.                   Ghosting files .........................................100
  161.                 MESSAGE AREAS ............................................101
  162.                   Defining ...............................................101
  163.                   Menus ..................................................104
  164.                   Toggling ...............................................104
  165.                 PSEUDO-AI ................................................105
  166.                 MINUTES ..................................................106
  167.                 GROUPS ...................................................107
  168.                 VOTING ...................................................108
  169.                 DOORS ....................................................110
  170.                   Defining ...............................................110
  171.                   Menus ..................................................114
  172.                   Time Maintenance .......................................114
  173.                   Misc. ..................................................115
  174.                 PROTOCOLS ................................................116
  175.                   Defining ...............................................116
  176.                 MENU SYSTEM ..............................................121
  177.                   Definition .............................................121
  178.                   McEditor ...............................................122
  179.                   Menus ..................................................124
  180.                   Command Objects ........................................126
  181.                   Commands ...............................................128
  182.                   Misc. ..................................................128
  183.                 WAITING FOR CALLER SCREEN ................................130
  184.                 THE "WHO'S ON" STATUS LINE ...............................133
  185.                 ACCOUNT VALUE ............................................134
  186.  
  187.  
  188.  
  189.                 EVENTS ...................................................135
  190.                   Defining ...............................................135
  191.                 OH OH! ...................................................138
  192.                 STYLES\LANGUAGES .........................................139
  193.                   Directories ............................................140
  194.                   Styles .................................................142
  195.                   Languages ..............................................143
  196.                   Your own style .........................................143
  197.                   Menu Commands ..........................................143
  198.                 TEXT FILE MANAGEMENT SYSTEM ..............................146
  199.                 DIRECTRY'S ...............................................147
  200.                 USER VOTING ..............................................149
  201.                   Peer Review ............................................149
  202.                   Sysop InfoForms ........................................150
  203.                 DATABASER ................................................151
  204.                   DB_BLKS.TXT DataBaser Structure ........................151
  205.                   Calling Via Menus ......................................155
  206.                   Modifying ..............................................155
  207.                   More ...................................................155
  208.                 LIFE & DEATH DELETE ......................................159
  209.                 MULTI-NODE OPERATIONS ....................................160
  210.                 INTERNAL NETS ............................................162
  211.                   Null Link ..............................................162
  212.                   LANs ...................................................162
  213.                   Null LAN ...............................................163
  214.                 FILE CORRUPTION ..........................................164
  215.                 SPECIAL THANKS ...........................................165
  216.                 NEXT .....................................................166
  217.  
  218.                                                                            -1-
  219.  
  220. WHY SETUP A     For  the  corporation,  a  BBS is an  inexpensive  method  of 
  221. BBS?            distributing software to its customers.   Providing a way for 
  222.                 customers who do not have 3.5"  disk drives to easily get the 
  223.                 software,   rather  than  the company (and  customer)   going 
  224.                 through the time and expense of either sending a 5.25"  disk, 
  225.                 or including both types with each software product.   The BBS 
  226.                 optional provides faster turn-around response time as well. 
  227.  
  228.                 A  BBS also provides the corporation with a method of  easily 
  229.                 distributing updated versions of each software product.  When 
  230.                 a customer finds a bug in a piece of software, they blame two 
  231.                 companies:  the original author,  and the one that sold it to 
  232.                 them.    Both  companies have a good chance of never  hearing 
  233.                 again from that customer.  A  BBS allows your older customers 
  234.                 to  get  the same software updates you include for the  newer 
  235.                 customers. 
  236.  
  237.                 Finally,  it provides a way for the corporation to distribute 
  238.                 "undistributable"  documents to its customers.   Such  things 
  239.                 as:   complete  price lists,  technical specifications  about 
  240.                 hardware  products,   "commonly  asked  questions"   of  your 
  241.                 technical  support  lines,  documents on the  historical  and 
  242.                 tested  performance of the various hardware  products.    The 
  243.                 same  documents that companies sent to you to convince you to 
  244.                 carry their line can be used on a BBS to help generate sales. 
  245.  
  246.                 For  the  individual,  a  BBS provides a temple of power  for 
  247.                 yourself.  Software comes to you.   You provide a service for 
  248.                 other  people.    You are able to get your thoughts,   ideas, 
  249.                 beliefs,  and knowledge out into the world where all can see.  
  250.                 You can even make a BBS a business and get money running  one 
  251.                 (if  you are willing to make the initial investment to become 
  252.                 a  huge  multi-node BBS,  or a smaller many multi-lined  chat 
  253.                 BBS).    A  BBS provides you and your callers with access  to 
  254.                 many mail echo's from around the world,  and is a must if you 
  255.                 want to start your own mail echo to send around the world. 
  256.  
  257.                 For the individual,  who does not want to run a public access 
  258.                 system,  a BBS program is superior to a normal communications 
  259.                 program  because  of  its net mail  capabilities.    It  also 
  260.                 provides  a way to quickly exchange information between  your 
  261.                 friends any time of the day as a private BBS. 
  262.  
  263.                 Why this BBS program?   Because it provides more  flexibility 
  264.                 of  design in its presentations to callers than any other BBS 
  265.                 program.   What you envision, this software can make real; no 
  266.                 sacrifices, no compromises, only your vision. 
  267.  
  268.                                                                            -2-
  269.  
  270. ORGANIZATION    Most  of  the user-accessible functions of a BBS need  to  be 
  271.                 relatively  easy  to  understand when they  are used on-line.  
  272.                 These  docs were organized to provide additional  information 
  273.                 for the sysop.   In many cases,  the details are of the  type 
  274.                 that only a programmer would think to note--feel free to skim 
  275.                 past  stuff  you do not understand,  and to  skim even faster 
  276.                 past stuff you already do understand. 
  277.  
  278.                 Typically,   the first questions I am asked is "can the sysop 
  279.                 design  their  own  menus,"  and "can the sysop move commands 
  280.                 from one menu to another"--Yes, to both.
  281.  
  282.                 Q&A.DOC  contains some other questions I've been asked,   and 
  283.                 might be worth looking over. 
  284.  
  285.                 About  half the docs are on-line in the form of on-line  docs 
  286.                 for such things as Toggles, Settings, and Menu Commands.   So 
  287.                 if you do not find the answer to a question in these docs, or 
  288.                 the  HELP  directory,  try the on-line docs (most  stored  in 
  289.                 MENUCMDS.TXT if you want to print them out). 
  290.  
  291.                 This  software can be tricky.   It does almost everything  in 
  292.                 more than one way--leaving it up to the sysop to select which 
  293.                 way  to  do  what  they want.    This  capability  adds  some 
  294.                 complexity,  but  once  you  realize  that  it is  "organized 
  295.                 complexity" you will be fine.
  296.  
  297.                                                                            -3-
  298.  
  299. LIMITS          Mostly  your  RAM  and drive space  are  your  only  limiting 
  300.                 factors.
  301.  
  302.                 1000 file areas.
  303.  
  304.                 100 voting questions.
  305.  
  306.                 1000 message areas.
  307.  
  308.                 32,000 active messages per message area.
  309.  
  310.                 Message numbers can go to 2,100,000,000. 
  311.  
  312.                 25 of your own defined data bases.
  313.  
  314.                 32,000 door programs.
  315.  
  316.                 99 undergoing-peer-review users.
  317.  
  318.                 32,000 entries in the databases.
  319.  
  320.                 32,000+ active users.
  321.  
  322.                 32,000+ active files on-line.
  323.  
  324.                 The above limits can be increased if needed, just ask. 
  325.  
  326.                                                                            -4-
  327.  
  328. NOTICE          This is not a pre-release, alpha, or beta version.  I will be 
  329.                 numbering  my  releases .01  to .99.   "1"  being  a  perfect 
  330.                 program, so anything short of perfection merely approaches 1. 
  331.  
  332.                 "r.09"  means "release .09",  or "release #9".  A  release is 
  333.                 when  I  take  the time to  actually  update  everything  and 
  334.                 distribute it to release sites.  No small undertaking.
  335.  
  336.                 In between releases,  I  release JMODxxyy files which contain 
  337.                 any bug fixes,  additional docs, and other interesting stuff. 
  338.                 XX will be the release number,  and YY the release number for 
  339.                 the JMOD file.  Example: JMOD0904 would be the 4th release of 
  340.                 the  JMOD  file for release .09  of JDR_BBS.    Any  releases 
  341.                 before  the latest one are contained within,  so there is  no 
  342.                 need  to  ever  get an old JMOD.   JMOD files  usually  start 
  343.                 appearing about a month after release,  and are updated about 
  344.                 every month or two. 
  345.  
  346.                 I  make  a great effort each release to  test everything  for 
  347.                 bugs, but there is no such thing as bug-free software. 
  348.  
  349.                 New versions will be released every 3 to 12 months.  It is an 
  350.                 evolving product.   In many cases,  the ideas you relay to me 
  351.                 will appear in the very next release. 
  352.  
  353.                 When  I mention "sysop"  that's you--and anyone of your  same 
  354.                 Security Level (usually).   When I mention "caller" or "user" 
  355.                 those are non-sysops.   Example,  when I say "users don't see 
  356.                 this"   I  mean that the caller will not see it,  but at  the 
  357.                 console you will see it. 
  358.  
  359.                 If you find anything not to your liking, please tell me.  New 
  360.                 ideas  need  not  change the old  method,   this  program  is 
  361.                 designed to do many same things differently. 
  362.  
  363.                 It is  ready to run now,  just INSTALL it and run it--even if 
  364.                 you are running a BBS on COM1,  do not worry,  it will be  in 
  365.                 local mode.
  366.  
  367.                                                                            -5-
  368.  
  369. REGISTRATION    Required within 30 days of use.
  370.  
  371.                 See ORDER.FRM for pricing information.
  372.  
  373.                 The  version you are using is fully functional.   Registering 
  374.                 is required for  continued use,  and provides many additional 
  375.                 capabilities--including the source code (Basic/Assembly). 
  376.  
  377.                 Many of these additional capabilities are listed on the sysop 
  378.                 menus in violet. 
  379.  
  380.                 Besides  the  additional  sysop commands,   the  post-upload-
  381.                 processing stuff is also registered.  That includes importing 
  382.                 FILE_ID.DIZ's,   inserting archive comments,  virus checkers, 
  383.                 etc.    However,   at  the last minute  I  decided  to  allow 
  384.                 importing  of  FILE_ID.DIZ files (either after an  upload  or 
  385.                 with the Post Upload Processing sysop menu command)  for ZIPs 
  386.                 only--to provide you a better opportunity to examine the file 
  387.                 system. 
  388.  
  389.                 Thus,   the  unregistered  cannot do the  sysop  commands  in 
  390.                 violet,  does very limited file post-upload-processing,   and 
  391.                 cannot  do  compression-related stuff (compressing  messages, 
  392.                 etc.) 
  393.  
  394.                 What  was  selected  to be registered were  not  things  that 
  395.                 cripple the operations of the BBS, or penalize the users, but 
  396.                 rather   enhancements  that  a  sysop  would  like.    Since, 
  397.                 ultimately, it is the sysop who registers this. 
  398.  
  399.                 If you are a company,  you must do a corporate  registration.  
  400.                 If  you  are  an  individual,  you  may  choose  personal  or 
  401.                 corporate registration. 
  402.  
  403.                 Registrations are site licenses.   Each computer running this 
  404.                 software must be individually registered.  A  single computer 
  405.                 multitasking  three  phone lines is considered one  computer.  
  406.                 Workstations  on  a LAN or WAN are individual computers,  but 
  407.                 usually only the server runs the software. 
  408.  
  409.                 Cash, check, or money orders only.  For extra safety, you can 
  410.                 send  it via certified mail.   A  wire transfer may  also  be 
  411.                 acceptable,  but require an additional charge.   Credit cards 
  412.                 may be acceptable in the future,  so if  you want to use one, 
  413.                 ask  first--but  it  is likely to  add another  25%   to  the 
  414.                 registration fee  (that was the fee of the last credit-cards-
  415.                 for-BBSs provider I looked at). 
  416.  
  417.                 Registrations  are  lifetime.    Technical  support  is  also 
  418.                 lifetime.   All future versions will be considered registered 
  419.                 for you,  with one exception: a possible Windows-only version 
  420.                 I may develop in parallel to this line.   This software  here 
  421.  
  422.                                                                            -6-
  423.  
  424.                 will  be getting itself split into a DOS and Windows  version 
  425.                 over the next year or two.  The Windows-only BBS software I'm 
  426.                 thinking of doing would be a more simpler commercial version. 
  427.  
  428.                 Registrations  are non-transferable.   You may not  sell  it, 
  429.                 trade it, or give it to someone else.  One of the reasons for 
  430.                 the extra cost  of the Corporate  registration  is  that this 
  431.                 registration  tends  to transfer from employee to employee as 
  432.                 different employee's take on the task of maintaining the BBS. 
  433.                 This is acceptable for Corporate registrations as long as  it 
  434.                 is  inside the company.   Personal registrations may  not  do 
  435.                 this.    Example,   a  personal registrar may  not  give  the 
  436.                 registration   to  his  friend--personal  registrations   are 
  437.                 individual and non-transferable always. 
  438.  
  439.                 Registration does not grant you ownership of the source code.  
  440.                 You may not recompile and resell the program in any form,  or 
  441.                 parts thereof,  without the authors permission.   The  source 
  442.                 code is solely for your own in-house modifications.   If  you 
  443.                 wish  to  license part(s)  of the source code,   contact  the 
  444.                 author.
  445.  
  446. Registered      Registration  will get the registered version of  Juggernaut.  
  447. package         It is essentially the same program,  but with a lot of extras 
  448.                 made accessible. 
  449.  
  450.                 The registered package has, over these years,  gotten reduced 
  451.                 to  a single letter confirming that you are registered,   and 
  452.                 card containing your key codes. 
  453.  
  454.                 Everything  else  is  given  to  you  via  File  Attaches  on 
  455.                 Immortality.    In  the future,  I  will  be  expanding  this 
  456.                 capability to the distribution sites and Internet, and making 
  457.                 it much more automatic. 
  458.  
  459.                 I  have  found that sending disks through the mail  was  just 
  460.                 getting them partially corrupt half the time.  A  mailman may 
  461.                 be  willing  to go through extreme conditions,  but  data  on 
  462.                 disks hate it.  Also,   the  software  has simply changed too 
  463.                 fast  to  make  printed  manuals practical.   Although  I  am 
  464.                 hopeful this will change in the future. 
  465.  
  466.                 After registering, you will be given a package of files which 
  467.                 include a registered version of JDRBBS.EXE,  the docs for the 
  468.                 registered  capabilities,  and information about how to  hook 
  469.                 into the support network. 
  470.  
  471.                 Other  things include some free upload bytes on  Immortality, 
  472.                 access to the encrypted Registered Sysops echo, your own node 
  473.                 address on the support network,  and you can optionally  have 
  474.                 your BBS appear in the list of active registered sites. 
  475.  
  476.                                                                            -7-
  477.  
  478.                 You will be able to get future releases free of charge off my 
  479.                 BBS.  A distribution network is also being set up.
  480.  
  481.                 So  register  today!   There are many good things yet  to  be 
  482.                 added to this software,  and your support will help make this 
  483.                 possible.
  484.  
  485.                                                                            -8-
  486.  
  487. DISCLAIMER      I  make  no warranties of  any  kind,   either  expressed  or 
  488.                 implied, as to the fitness of use, quality, or performance of 
  489.                 this software. 
  490.  
  491.                 In  no manner shall I be held liable or responsible  for  any 
  492.                 losses or damages arising from the use of this software. 
  493.  
  494.                 See also:  NOT_DOCS.DOC
  495.  
  496.                                                                            -9-
  497.  
  498. SUPPORT         I can be reached as follows:
  499.  
  500.                 Physical mail:    John Rohner
  501.                                   POB 340304
  502.                                   Milw., WI 53215
  503.                                   If just a question, include a SASE.
  504.  
  505.                 Electronic mail:  John Rohner (sysop)
  506.                                   Immortality
  507.                                   (414) 643-1576
  508.  
  509.                 Internet:         rohner@csd.uwm.edu
  510.                                   Not stable, if no reply in a week then 
  511.                                   call the BBS.
  512.  
  513.                 Usenet groups:    alt.bbs
  514.                                   alt.bbs.allsysop
  515.                                   comp.bbs.misc
  516.                                   Also not stable.
  517.  
  518.                 Net mail:         Immortality
  519.                                   (414) 643-1576
  520.                                   Must be direct call.
  521.                                   The BBS accepts mail 24 hours.
  522.  
  523.                 Voice:            Rarely given out.
  524.  
  525.                 FidoNet:          not yet...
  526.  
  527.                 I  would  prefer  that  you use a public  area  to  post  any 
  528.                 messages concerning this software.   Usually the  "Juggernaut 
  529.                 Support"   area on my BBS.   That way other sysops get to see 
  530.                 the  message.    Many  private  messages  to  me   concerning 
  531.                 questions  about the software will be forwarded to the public 
  532.                 areas. 
  533.  
  534.                 Ideally,  you should try to post the message in the following 
  535.                 order: 
  536.  
  537.                     Juggernaut Support on my BBS (echo'd to other sysops).
  538.                     BBS related echos on the Internet.
  539.                     Feedback to me on my BBS.
  540.                     E-mail to me on the Internet.
  541.  
  542.                 You  can  also  contact  any BBS  which  has  registered  the 
  543.                 software, usually they are pretty smart about how it works. 
  544.  
  545.                                                                           -10-
  546.  
  547. STARTING UP     To  make  full  use of this  software,   you  will  need  the 
  548.                 following (listed in order of importance): 
  549.  
  550.                    ∙ A '286, 640k, or better computer.
  551.                    ∙ One or more hard disks.
  552.                    ∙ A modem.
  553.                    ∙ The latest version of PKZip/PKUnZip.
  554.                    ∙ A fossil communications driver (such as X00, BNU, etc.)
  555.                      (included in the sample \UPLOADS area)
  556.                    ∙ A protocol driver, such as DSZ or GSZ.
  557.                    ∙ Your favorite text editor.
  558.                    ∙ An ANSI editor, such as The Draw.
  559.  
  560.                 The following are optional, but every good BBS needs them:
  561.                    ∙ The latest version of ARJ.
  562.                    ∙ The latest version of LHA.
  563.                    ∙ You will probably also want the latest version of PKLite 
  564.                      or similar (for reducing .EXE's). 
  565.                    ∙ The latest version of BiModem.
  566.                    ∙ A disk defragmenting utility.
  567.                    ∙ A VGA monitor (for GIP graphics)
  568.  
  569.                 Don't  be  put off by that VGA monitor bit--it is in  no  way 
  570.                 required to use this software.   But the software is  getting 
  571.                 more graphical with each version, so it is nice to have. 
  572.  
  573.                 If  you cannot find any of the software on your local  BBS's, 
  574.                 then give mine a call and you can download it from there. 
  575.  
  576.                 The  software  works  fine  with  disk  compressing  programs 
  577.                 (Stacker,   DoubleSpace, SuperStor)   and under a variety  of 
  578.                 operating environments (DOS, DesqView, Windows).  It does not 
  579.                 do  any  "oddball"   things,   nor does it  attempt  to  take 
  580.                 advantage  of  the  OS  you  put  it  in--it  is  environment 
  581.                 friendly. 
  582.  
  583.                                                                           -11-
  584.  
  585. TRY OUT         Just  run  JDRBBS.EXE.   It is configured with comm port =  0 
  586.                 (local/console  mode)   so  you do not have  to  worry  about 
  587.                 hooking up a modem/etc.  right now.   It will use the current 
  588.                 drive  as its basis drive,  and will initialize the  #NEWUSER 
  589.                 new user record (the first user record). 
  590.  
  591.                 #NEWUSER  is  the name given to the very first record in  the 
  592.                 Users file.  All new users are given a copy of this record as 
  593.                 their starting record.   You may edit these  values like  any 
  594.                 other  user  entry,  just specify "#NEWUSER"  for the  user's 
  595.                 name.  For most things, the #NEWUSER entry/name is invisible. 
  596.  
  597.                 Technical  note:    The  software keys on  the  existence  of 
  598.                 PATHS.DAT to  determine when  you  first  run  it.    It then 
  599.                 creates PATHS.DAT, BBS001.BAT,  DOOR001.BAT,  and BACKUP.BAT.  
  600.                 It also sets the comm port to zero,  re-initialize's #NEWUSER 
  601.                 to  the  default settings,  and  sets the  waiting-for-caller 
  602.                 drives-to-show  to  the  current drive.   Finally,   it  goes 
  603.                 through  all  your small SYSTEM\*.DAT files,  and  text-block 
  604.                 files,  and changes  "C:\" to whatever your current drive is, 
  605.                 and any "system operator's" to your sysop name.  That is all.  
  606.                 Which means if you accidentally delete PATHS.DAT,  you do not 
  607.                 have to fear for the rest of your files.   Deleting PATHS.DAT 
  608.                 is a good first step when moving the BBS to a different drive 
  609.                 letter. 
  610.  
  611.                 Because  it is set for local-only operation (Comm port  = 0), 
  612.                 it will automatically  display  the logo and start  the login 
  613.                 process.   Follow what it says.  It is just like logging onto 
  614.                 a normal BBS. 
  615.  
  616.                 One  thing  you  will notice immediately is that  instead  of 
  617.                 "password:" I use "verification:".   You can change it if you 
  618.                 like.   "Password"  was just too archaic for me.   After all, 
  619.                 "my pass word",  "]I[ %5^&890", and "643-1576" are all valid, 
  620.                 and hardly a word. 
  621.  
  622.                 Now that you are in, play around with it, get to know it. 
  623.  
  624.                 I have pre-created the following for you:
  625.  
  626.                     1 File Area: UPLOADS
  627.                     a few Message Areas
  628.                     2 doors: ED.EXE (PC-Write)
  629.                              CSHOW.EXE (CompuShow)
  630.                     7 voting questions
  631.                     1 ramble
  632.                     8 Security Levels
  633.                     Some sample MESSAGE.### files.
  634.                     3 Directry files: Unprotects
  635.                                       Music Quotes
  636.                                       Other Ansi's
  637.                     A whole bunch of sample menu sets (Styles\Languages).
  638.  
  639.                                                                           -12-
  640.  
  641.                 This is so you can get some general feel for the software and 
  642.                 its capabilities. 
  643.  
  644.                 After  looking  around,   hit  <alt>u.    This  is  the  user 
  645.                 maintenance--change your Security Level to 100. 
  646.  
  647.                 Hitting "!" at the main menu brings up the sysop menu. 
  648.  
  649.                 You should make sure the .EXE and/or paths are correct in the 
  650.                 following instances: 
  651.  
  652.                     File Areas Maintenance
  653.                     Protocols
  654.                     Executable Lines
  655.                     Door Maintenance
  656.  
  657.                 Do not worry about the communication parameters for now.
  658.  
  659.                 You may quit the software by hitting <alt>x.
  660.  
  661.                 See also:  CUSTOMIZING 101, CUSTOMIZING 201, MODEM SETUP,
  662.                            CONFIG, SETTINGS, PATHNAMES
  663.  
  664.                                                                           -13-
  665.  
  666. RESTARTING      After the first time, always use "BBS001"  (as in BBS001.BAT) 
  667.                 to  run the BBS.   Or rather BBS### where "###"  is the  node 
  668.                 number you wish to run.  If using only one node, it is easier 
  669.                 to just copy BBS001.BAT to BBS.BAT and just type "BBS" to run 
  670.                 the program. 
  671.  
  672.                 You may use JDRBBS /?  (or BBS001  /?)  to bring up a list of 
  673.                 what command-line commands are available.  They are: 
  674.  
  675.                     /?            to get a help list.
  676.  
  677.                     /NODE=x       to start up node x.  Where "x" is a number 
  678.                                   from 1 to 999.  Optional for Node 1, but
  679.                                   required for any nodes larger than 1.
  680.  
  681.                     /PORT=x       to re-set the current comm port to x.  
  682.                                   Where "x" is a number from 0 to 4 (or 
  683.                                   higher if your fossil supports it). 
  684.  
  685.                     /BAUD=x       to reset the baud rate the computer talks 
  686.                                   to the modem at. "x" is one of: 1200, 2400, 
  687.                                   9600, 19200, or 38400. 
  688.  
  689.                     /INIT=x       to define what your modem's initialization 
  690.                                   string should be.  Example: ATZ, ATE1X4, 
  691.                                   AT&F&C1&D2H0, etc.
  692.  
  693.                     /1STCMD=xxxx  to re-set the first command to xxxx.  
  694.                                   "xxxx" must be a four letter command.  You 
  695.                                   may run a single command by doing: 
  696.  
  697.                                     JDRBBS /1STCMD=xxxx
  698.                                     BBS001 /1STCMD=STRT
  699.  
  700.                                   the first part runs JDRBBS and executes the 
  701.                                   command "xxxx", the second part re-sets it 
  702.                                   properly.  "xxxx" should not be a command 
  703.                                   that requires the user's name unless you 
  704.                                   put a "LogN" as the first command in 
  705.                                   "xxxx"'s command list.  Probably 
  706.                                   "/BAUD=0" then "/BAUD=n" needs to be done 
  707.                                   for some commands--otherwise it exits 
  708.                                   because it does not find a carrier on the 
  709.                                   currently defined port. 
  710.  
  711.                     /NODIRECT     to turn direct screen writing OFF. 
  712.  
  713.                     /RESCAN       do a complete re-scanning of your file
  714.                                   areas against what you have on disk,
  715.                                   updating your on-line file lists
  716.                                   appropriately.
  717.  
  718.                                                                           -14-
  719.  
  720.                     /RESCANALL    same as /RESCAN, but will do all areas
  721.                                   whereas /RESCAN will only do those areas
  722.                                   with File Area Attribute 9 OFF.
  723.  
  724.                     /USEVGA       some sysop commands have VGA versions and
  725.                                   ANSI versions.  When you use this, it
  726.                                   will select to use the VGA versions.  It
  727.                                   will also change to 50 line mode when a
  728.                                   caller is using a > 25 video height.
  729.  
  730.                                   **If you have a VGA monitor, and do not
  731.                                   need to run in text mode for something like
  732.                                   a multi-tasker, I strongly urge you to use
  733.                                   this parameter in your BBS001.BAT file.
  734.                                   It's great!  Also lets you see what users
  735.                                   see if they have > 25 screen heights (which
  736.                                   otherwise mess up the local console).
  737.  
  738.                     /USE50        this will lock the console in 50 line
  739.                                   display mode.  It also use the VGA
  740.                                   alternative displays.
  741.  
  742.                     /NOEVENTS     this will not execute any events that were
  743.                                   to occur since the last time the BBS was
  744.                                   active.  Useful if you had it off-line for
  745.                                   a while, and want to get on right away
  746.                                   rather than waiting for it to first finish
  747.                                   some scheduled event.  It does not affect
  748.                                   future events, just those missed while
  749.                                   inactive.
  750.  
  751.                 Each  command must have no spaces within it.   So "/node = 1" 
  752.                 will not work.
  753.  
  754.                 "/",   "-",  "\",  or nothing at all may be used  as  leading 
  755.                 characters. 
  756.  
  757.                 There  are  Settings for the modem stuff,  but these  command 
  758.                 line versions are a bit easier,  and provide a way to recover 
  759.                 if  you  enter bad modem information that doesn't set up  the 
  760.                 modem properly. 
  761.  
  762.                 Technical  note:  only those /cmds inside BBS###.BAT will  be 
  763.                 re-executed if you do a full-exit door. 
  764.  
  765. Config          Below is what my CONFIG.SYS and AUTOEXEC.BAT look like:
  766.  
  767.                 CONFIG.SYS:
  768.  
  769.                     buffers = 25
  770.                     files = 20
  771.                     device = x00.sys T=2048 eliminate
  772.  
  773.                                                                           -15-
  774.  
  775.                 AUTOEXEC.BAT:
  776.  
  777.                     path \dos;\bbs\bin;
  778.                     break off
  779.                     verify off
  780.                     cd \bbs
  781.  
  782.                 Turning "break off" and "verify off" is an old BBS'ers trick, 
  783.                 allowing faster disk accesses.
  784.  
  785.                 If you just want to look around--not run the BBS, just ignore 
  786.                 the CONFIG/AUTOEXEC stuff. 
  787.  
  788.                                                                           -16-
  789.  
  790. INPUTING        In most cases inputing of file names and user  names  utilize 
  791.                 "auto-completion"--you start it, the software finishes it. 
  792.  
  793.                 With every keystroke, when entering a file or user name,  the 
  794.                 software  searches  through all entries and looks to  see  if 
  795.                 there is  only  one possible match.   The software will  then 
  796.                 send the remaining keystrokes out--saving  the user the  need 
  797.                 to type it.   If what the user types has no match, then it is 
  798.                 ignored. 
  799.  
  800.                 I have found that, for user names at least,  most sysops seem 
  801.                 to turn this off right away.   But think twice before turning 
  802.                 off the file name auto-completion,  it really is handy--helps 
  803.                 by not needing to memorize filenames. 
  804.  
  805.                 When entering user names, you may type a "*" or a "?" anytime 
  806.                 after the first character.   When this is detected, a list of 
  807.                 all the users matching those letters will appear.    Example: 
  808.                 typing JOHN* would show all users with names with the first 4 
  809.                 letters  "JOHN".    This is mostly useful for  when  entering 
  810.                 messages TO:  a person in a message area that allows  any TO: 
  811.                 name (thus no auto-name-detect, such as net mail areas). 
  812.  
  813.                 Some answer fields, that have a size limit,  automatically do 
  814.                 a [Enter] when you reach the end of the field. 
  815.  
  816.                 Security Levels, in some places, can be entered by entering a 
  817.                 range--either a single value,  or two values separated by the 
  818.                 word "to" (eg. "5 to 20"). 
  819.  
  820.                 In most situations, a [Space] (or [Tab]) will pause the text, 
  821.                 and an [Enter] will cancel or exit an option.
  822.  
  823.                 For times,  a 24  hour clock is assumed.   This means that an 
  824.                 hour  of "0"  is midnight,  "12  is noon.   A  day starts  at 
  825.                 "00:00:00"  (midnight)  and goes through to "23:59:59" (11:59 
  826.                 pm).   Because of the way seconds are stored, they may be off 
  827.                 by one second from what you entered.  A  00:00:00 to 00:00:00 
  828.                 range  means  available 24  hours (indeed,  any two  matching 
  829.                 times  mean  to  use the  full 24   hours).    For  24   hour 
  830.                 restriction,  use 00:00:00  to 23:59:59.   You must enter the 
  831.                 full 8 characters (HH:MM:SS) or you will get random results. 
  832.  
  833.                 Phone  numbers  have become tricky these days.   In order  to 
  834.                 make  everyone happen,  no processing of what was entered  is 
  835.                 done.   Call-back verification is the only place this  really 
  836.                 matters. 
  837.  
  838.                 Whenever you enter full pathnames,  you should always include 
  839.                 the leading drive letter.  Example: "c:\uploads\test.zip" not 
  840.                 "\uploads\test.zip". 
  841.  
  842.                                                                           -17-
  843.  
  844.                 See  the  file  HELP\KEYS.HLP  on information  about  how  to 
  845.                 colorize text and produce international characters (users and 
  846.                 sysops can do this--even in their names).
  847.  
  848.                 When a user receives a beep,  such as  during  active grammar 
  849.                 check,  or after file transfers, the console will not get the 
  850.                 beep (to preserve sysop sanity). 
  851.  
  852.                 If you are the sysop, and/or at the console, then most of the 
  853.                 "inactivity  time-out"  timers will be ignored.   This is not 
  854.                 true  when  doing some commands from  the  Waiting-For-Caller 
  855.                 (WFC) screen, as the software does not know who you are then. 
  856.  
  857. Censoring       This software has the ability to "censor"  user inputed text. 
  858.                 This  censoring is done only when entering file  descriptions 
  859.                 or the body of messages. 
  860.  
  861.                 There are three "levels" of censoring: 
  862.  
  863.                     Simple case adjustment. 
  864.                     Removal of non-words. 
  865.                     Removal of superlatives. 
  866.  
  867.                 All three are done when entering file descriptions,  and only 
  868.                 the first two are done when entering messages. 
  869.  
  870.                 Censoring is not done on imported or uploaded messages.    It 
  871.                 is also not done when importing file descriptions. 
  872.  
  873.                 You,   the sysop,  may toggle on/off this feature.   You  may 
  874.                 toggle removal of non-words on/off and you may toggle removal 
  875.                 of superlatives on/off.   If both are toggled off,  then case 
  876.                 adjustment  is also off.   If either one is toggled on,  then 
  877.                 case adjustment is also on. 
  878.  
  879.                 Simple  case adjustment is the "correcting"  of lower case to 
  880.                 upper case. 
  881.  
  882.                 Examples:
  883.  
  884.                     " i " becomes " I " 
  885.                     "bbs" becomes "BBS" 
  886.                     ".gif" becomes ".GIF". 
  887.  
  888.                 Removal  of  non-words eliminates the word completely.    The 
  889.                 words that are eliminated:  "alot", "l8tr",  "c00l",  "k00l", 
  890.                 "gotta". 
  891.  
  892.                 Removal  of  superlatives  eliminates  the  word  completely.  
  893.                 Words  that  are  superlatives;  excellent,   great,   super, 
  894.                 incredible, etc. are removed. 
  895.  
  896.                                                                           -18-
  897.  
  898.                 All  three  are  done  as the user enters  the  text.    Case 
  899.                 adjustment is the only one that is not "demonstrated"  at the 
  900.                 time.  By demonstrated, I mean that when a user enters a non-
  901.                 word in either a message or description,  or a superlative in 
  902.                 a  description,   then they will see the word deleted  before 
  903.                 their  eyes--no matter how many times they  repeatedly  enter 
  904.                 it. 
  905.  
  906.                 Of the above, the "alot" elimination seems to have caused the 
  907.                 most  trouble--those  who  use this  non-word  seem  to  have 
  908.                 trouble stopping themselves. 
  909.  
  910.                 Why  censor superlatives?   If you are an experienced  sysop, 
  911.                 you  know.    Users will always try to add a  superlative  in 
  912.                 their descriptions,  they seem to feel the need to "sell" the 
  913.                 sysop  on the upload,  this is particularly true  of  systems 
  914.                 where  the upload must first be validated by the sysop before 
  915.                 others  can  download  it.   One can get tired of these  non-
  916.                 descriptions quickly.  This is one of my favorite features of 
  917.                 this  software  (the other being automatic logging of removed 
  918.                 files). 
  919.  
  920.                 Description censoring is not done when the user is the sysop. 
  921.  
  922.                 You may add  or  alter the  various  censored words.  See the 
  923.                 SHORT.TXT  file  for information on which lines  contain  the 
  924.                 censoring words. 
  925.  
  926. Active          Active spell checking is a form of censoring.  While entering 
  927. spelling        messages,   it  beeps whenever a word you just typed  is  not 
  928. checker         found  in  the word lists.   It beeps at the same  misspelled 
  929.                 words that Grammar Check would highlight. 
  930.  
  931.                 If  both  removal  of  non-words  censoring  and  removal  of 
  932.                 superlatives censoring are turned off,  active spell checking 
  933.                 will  not operate.   If you do not want censoring,  but  want 
  934.                 active spell checking,  then leave one of the censors toggled 
  935.                 ON,  and clear  out the SHORT.TXT entries for it (so it finds 
  936.                 nothing to censor). 
  937.  
  938.                 Active  spell checking can be turned on and off by the  user, 
  939.                 but it still requires that you have censoring ON to work. 
  940.  
  941. Search          Another  form  of "sort-of"  censoring is the  search  string 
  942. string          chopper.   This occurs after a user enters a search string to 
  943. chopper         search  the "off-line"  lists--either from the  search  lists 
  944.                 command, or from the search-lists-before-uploading command. 
  945.  
  946.                 Our  first  attempt to censor begins by presenting  the  user 
  947.                 with  a  10  character field for them to enter  their  search 
  948.                 string.    The  purpose of this limitation is to remind  them 
  949.                 that they are searching for text, not filenames.   After all, 
  950.  
  951.                                                                           -19-
  952.  
  953.                 filenames  do not really mean anything--they can change  from 
  954.                 one  BBS to another.   I  like to think that when  they  type 
  955.                 FILENAME.Z and find that they cannot do the "IP"  that  their 
  956.                 brains  realize  that maybe the filename is not such  a  good 
  957.                 search. 
  958.  
  959.                 Then we do some visible editing of what they typed.
  960.  
  961.                 First we chop off anything after a "."--any extension.
  962.  
  963.                 Then  we clear out any non-alphabetic text--like numbers  and 
  964.                 stuff.   Things that really only appear in file names.    The 
  965.                 sysop  has a toggle to control whether the software should do 
  966.                 this or not.  For instance, however, "X00"  would become just 
  967.                 "X" and not searched for--but "XX_1094.ZIP" would become just 
  968.                 "XX"  and not searched for either.   It is a bit of a  trade-
  969.                 off,   which is why I left the ultimate decision in  a  sysop 
  970.                 Toggle. 
  971.  
  972.                 Then we check what's left against our list of non-searchable-
  973.                 entries  (see SHORT.TXT).   Such as ZIP,  or GIF--things  for 
  974.                 which there are just too many entries,  and for which a smart 
  975.                 user  could  get  a  master list of  all  files  on  the  BBS 
  976.                 regardless of their security level. 
  977.  
  978.                 Finally  if what's left is less than three characters we just 
  979.                 drop  it--far  too many one and two character entries  to  be 
  980.                 displaying. 
  981.  
  982.                 The  system  works.   Users that continually enter  filenames 
  983.                 will  usually see them chopped down to nothing.   Even  those 
  984.                 that get through will usually produce a warning:   "searching 
  985.                 for a filename is not recommended." 
  986.  
  987. Internal Menus  At various times,  for various situations,  the software will 
  988.                 use it's own internally generated menu to offer you,  or your 
  989.                 users, selections. 
  990.  
  991.                 The colors for this internally generated menus can be defined 
  992.                 by you with Settings. 
  993.  
  994.                 These  menus  attempt  to put all the options onto  a  single 
  995.                 screen.  To do that, sometimes some get squeezed down a bit. 
  996.  
  997.                 But  at some point,  they get squeezed down so much they  get 
  998.                 unreadable.   Example:  with 200  options,  they display only 
  999.                 about 5 characters for each. 
  1000.  
  1001.                 To  get around this,  the software has a  threshold  Setting.  
  1002.                 When the squeezing falls below this number (10  being a  good 
  1003.                 number) we use a vertical selection window instead. 
  1004.  
  1005.                                                                           -20-
  1006.  
  1007. CONSOLE KEYS    I  don't  go into them here.    They  are  fairly  simple  to 
  1008.                 understand,   and once you use them you'll  usually  remember 
  1009.                 them. 
  1010.  
  1011.                 These are just the keys that:  lead to more information,  are 
  1012.                 most used, or need some extended explaining. 
  1013.  
  1014. From <alt>d     <f10>      is the key to remember, it provides help on what 
  1015.                            the other keys are while you are connected. 
  1016.  
  1017. When a user     <f10>      is the key to remember, it provides help on what 
  1018. is on-line                 the other keys are. 
  1019.                 <alt>h     hang up on the user.
  1020.                 <alt>c     to chat with the user.
  1021.                            Hit <alt>c again to exit chat.
  1022.                            Hit <f10> for the chat keys' help.
  1023.                            You can also just type "cls<ret>" to clear the 
  1024.                            screen when in normal chat (vs. 2-way chat). 
  1025.                            To safeguard the integrity of other routines, this
  1026.                            only works from the menu's.
  1027.                 <alt>k     to delete the current caller when they log out.
  1028.                            I like to use this as a quicky way to get rid of 
  1029.                            callers whom I know I will be getting rid of later 
  1030.                            (like those who call using handles like "Dan").
  1031.                 <alt>u     to do user maintenance.
  1032.                            "User" menu command.  The caller does NOT see 
  1033.                            anything, and any keys the caller types are 
  1034.                            executed after you exit the user editor.  You can 
  1035.                            make changes to the current caller, or any caller, 
  1036.                            and those changes will be immediate. 
  1037.                            To safeguard the integrity of other routines, this
  1038.                            only works from the menu's.
  1039.                 <alt>x     to do an immediate exit to DOS.
  1040.                            This does not save anything.  It only works when 
  1041.                            you are logged on at the console.  Does not take 
  1042.                            the phone off the hook.  You can use this command 
  1043.                            anywhere--but because it does not update the 
  1044.                            active users record (which is usually you) it is 
  1045.                            best to use it from WFC. 
  1046.                 <alt>s     to  shell  to DOS.
  1047.                            Does take the phone off the hook. 
  1048.                 <alt>z     This is a cross between <alt>x and <alt>s--it 
  1049.                            exits the BBS quickly from anywhere without saving 
  1050.                            anything, and takes the phone off-hook.  See 
  1051.                            <alt>x above. 
  1052.                 <f8>       Accesses NOTEPAD.TXT--letting you send any lines
  1053.                            from this file as if you typed them at the
  1054.                            console.
  1055.                 <f5>       toggles the screen (a screen clearing is done)
  1056.                            between 25 and 50 line modes.  VGA is required for
  1057.                            this.
  1058.                 <alt>p     Pure mode.  Direct access to the modem command 
  1059.  
  1060.                                                                           -21-
  1061.  
  1062.                            mode.  This is mainly useful with sysops who call
  1063.                            using <alt>d.  If you wish to show them something,
  1064.                            or explain problem, then you hit <alt>p on your
  1065.                            end, and they hit <alt>L on their and, and you
  1066.                            will immediately be able to log in on their BBS
  1067.                            (rather than you calling, it's their "dime").
  1068.  
  1069.                 Increasing the callers  SL allows you to do sysop things from 
  1070.                 the  console while another user is on-line,  such as allowing 
  1071.                 you do demonstrate the sysop capabilities to another user. 
  1072.  
  1073.                 When  you are in a DOS shell (such as using <alt>s--which can 
  1074.                 be used from Chat as well), two useful commands are: "DSZ rz" 
  1075.                 and  "DSZ  sz filename.ext".   The first receives  files  the 
  1076.                 person  at  the other end is sending,  and the  second  sends 
  1077.                 "filename.ext".  Both assume comm port 1, and you may need to 
  1078.                 change to the directory with DSZ first. 
  1079.  
  1080.                 See also:  THE "WHO'S ON" STATUS LINE
  1081.  
  1082. Definable       You may define <ctrl>F1 to <ctrl>F10.  See SHORT.TXT. 
  1083.  
  1084.                 These  lines  can  contain the menu commands you wish  to  be 
  1085.                 executed  when you hit <ctrl>Fx keys.   You aren't restricted 
  1086.                 to 4 letters. 
  1087.  
  1088.                 These control sequences will be allowed from anywhere,  so be 
  1089.                 careful. 
  1090.  
  1091.                 This is an extremely powerful,  dangerous,  and unpredictable 
  1092.                 ability  of  the software.   It relies on you to know when  a 
  1093.                 menu  command should or should not be executed--especially so 
  1094.                 when a user is on-line. 
  1095.  
  1096.                 They are probably best used to call a door from the  waiting-
  1097.                 for-caller screen (hint hint). 
  1098.  
  1099.                 Because you may enter any menu command, and do the command at 
  1100.                 any time,  you can see how problems can arise.   Particularly 
  1101.                 important to not do:  user commands when no user is there for 
  1102.                 the  software to find or update (such as at the  Waiting-For-
  1103.                 Caller screen). 
  1104.  
  1105.                 Only  trial-and-error will let you know when to use that  key 
  1106.                 to  do  what  you  want,  and when not to  (ie,   the  system 
  1107.                 crashes). 
  1108.  
  1109.                 I  have  predefined  <control>F2   as  the  "MCED"    command 
  1110.                 (McEditor).  Very useful when you design yourself into a hole 
  1111.                 in your menus. 
  1112.  
  1113.                                                                           -22-
  1114.  
  1115.                 I  have predefined <control>F3  as the "MHlp"  command  (Menu 
  1116.                 Command Helper).  This is the  "H"   from within McEditor and 
  1117.                 provides you with full screen access to information about the 
  1118.                 various menu commands.  Useful for browsing and re-confirming 
  1119.                 the functionality of a command. 
  1120.  
  1121.                 Some commands probably will not work if the current comm port 
  1122.                 is  not zero (because the software does not detect a  carrier 
  1123.                 signal  on  the  current port).   You can get around these by 
  1124.                 using "PORT".  For example: "PORT _0 ABCD PORT_1" which first 
  1125.                 changes to comm port 0, executes command "ABCD", then changes 
  1126.                 back to comm port 1. 
  1127.  
  1128.                 See also:  MENU COMMANDS
  1129.  
  1130. Misc.           The  way  the program works is like a hub  and  spoke  system 
  1131.                 (such  as  a  large city in relation to  the  smaller  cities 
  1132.                 around it). 
  1133.  
  1134.                 Menus represent the central hub.   From these you go to  many 
  1135.                 sub commands. 
  1136.  
  1137.                 This  means that most commands are sub commands and not  part 
  1138.                 of the main hub. 
  1139.  
  1140.                 So,  for safety's sake,  you should only execute console keys 
  1141.                 (such as chat, or <ctrl>Fx's) from the menus when a caller is 
  1142.                 on-line. 
  1143.  
  1144.                 The  concept is that you can go to the sub commands from  the 
  1145.                 main hub,   but you should not jump from sub command  to  sub 
  1146.                 command directly. 
  1147.  
  1148.                 For  you  programmers:   even  though  Basic  has  re-entrant 
  1149.                 capabilities,   exploiting  them by jumping from  sub  to sub 
  1150.                 without going  through  the  central  hub (Dispatcher)  could 
  1151.                 conflict  with the global variables and distort them.    Thus 
  1152.                 leading to unpredictable and potentially disastrous  results.  
  1153.                 However,  Basic is very robust,  and usually you will have to 
  1154.                 be pretty unlucky for anything bad to happen. 
  1155.  
  1156.                 The "dinky" stuff,  such as <alt>h or beeping, you should not 
  1157.                 worry about.  It is the chatting, shelling to DOS,  running a 
  1158.                 door,  etc.  that are likely to cause troubles for you if you 
  1159.                 execute these "inside" a sub module. 
  1160.  
  1161.                                                                           -23-
  1162.  
  1163. LOGGING         Both  the  Callers log and the Errors log can be  limited  in 
  1164.                 what they show using Logging Toggles.
  1165.  
  1166.                 These logs are all standard text files.   Feel free to simply 
  1167.                 delete them whenever you feel like it. 
  1168.  
  1169.                 See also:  TOGGLES
  1170.  
  1171. Callers log     This has the file name CALLERS.LOG.
  1172.  
  1173.                 The callers log contains 3 types of data lines:  user,  file, 
  1174.                 and system. 
  1175.  
  1176.                 The  system  lines  all  start  with  a  "|=",   and  contain 
  1177.                 informational  messages  from the BBS to the  sysop.    Users 
  1178.                 cannot see these lines. 
  1179.  
  1180.                 The  user lines begin with the date and a user's name.    For 
  1181.                 all users to see, it is mostly who logged on when. 
  1182.  
  1183.                 The  file lines come straight out of the protocol log  files.  
  1184.                 They  do have any paths stripped out first.   You can  toggle 
  1185.                 these on/off in the File Area Definitions. 
  1186.  
  1187.                 When listing the log,  users are shown the user lines and the 
  1188.                 file  lines.   When the sysop lists the log,  he is shown all 
  1189.                 lines. 
  1190.  
  1191.                 From the information shown, users can deduce the following:
  1192.  
  1193.                   ∙ Who called, when, and from where.
  1194.                   ∙ Who upload files--in case they would like to contact the 
  1195.                     uploader with a question. 
  1196.                   ∙ Who downloaded files--to see if a friend downloaded a 
  1197.                     file (saving them the trouble) or to see what kind of 
  1198.                     download interest their own uploads have gotten. 
  1199.                   ∙ Who lost credit for duplicate/bad uploads.
  1200.                   ∙ Who passed, or failed, Peer Review.
  1201.  
  1202.                 It is also useful for other sysops, they can see who are good 
  1203.                 users and who are  bad  users.   Perhaps leading to increased 
  1204.                 access for these good users on their own board. 
  1205.  
  1206.                 Technical note:  when you list the log using an external list 
  1207.                 utility,  note that the user who did the actions comes  after 
  1208.                 what they did.   That is, when using something like LIST, the 
  1209.                 user  that  did a file transfer is listed  after  those  file 
  1210.                 transfer entries.   The file should be read bottom-up.   When 
  1211.                 using  one of the software's internal log lister's,  this  is 
  1212.                 taken  into account and is listed correctly with the person's 
  1213.                 name first and their actions on the following lines. 
  1214.  
  1215.                                                                           -24-
  1216.  
  1217. Errors log      This has the file name ERRORS.LOG.
  1218.  
  1219.                 This  log contains important error messages,  or  unimportant 
  1220.                 minor adjustment notices.
  1221.  
  1222.                 ** IMPORTANT **
  1223.  
  1224.                 When you have a problem,  you should check here first to  see 
  1225.                 if it might have helpful information. 
  1226.  
  1227.                 ** IMPORTANT **
  1228.  
  1229. Session log     This has the file name SESSION.LOG.
  1230.  
  1231.                 The  session log is an I/O trap log, and will contain the I/O 
  1232.                 exactly  as  it  was  sent and/or received--including all the 
  1233.                 ANSI codes. 
  1234.  
  1235.                 There are useful sysop commands to slow-view these ANSI files 
  1236.                 and to strip the ANSI codes out of the file. 
  1237.  
  1238. Chat log        This has the file name CHAT.LOG.
  1239.  
  1240.                 The chat log contains the trapped chat sessions.
  1241.  
  1242.  
  1243. EH?             Are  you still reading this without trying the program?   Now 
  1244.                 would be a good time to try it out,  otherwise the detalia in 
  1245.                 the following sections will become confusing. 
  1246.  
  1247.                                                                           -25-
  1248.  
  1249. LOGIN           The  login sequence begins from the time of connect (when  we 
  1250.                 usually display a logo or somesuch) until we display the main 
  1251.                 menu.  This is referred to as the "Login Loop of commands". 
  1252.  
  1253.                 At any point during the login sequence,  the sysop may define 
  1254.                 that one or more ANSIs be displayed.   The sysop may also add 
  1255.                 or delete various other capabilities (such  as news) that can 
  1256.                 appear during the login process.
  1257.  
  1258. User Names      You can use just about anything for the login name.   
  1259.  
  1260.                 Examples: "|017th |15Guest", "Jo├┤N rOhNΣr ]I["
  1261.  
  1262.                 But it does make its own intelligent changes:
  1263.  
  1264.                   "john rohner" -> "John Rohner"
  1265.                   "JOHN MCADAMS" -> "John McAdams"
  1266.                   "john Doe" stays the same.
  1267.  
  1268.                 When  logging  in,  a  caller may start their name with  "=". 
  1269.                 Example, "=John Rohner".  What "=" does is disable auto-name-
  1270.                 detection.   This is useful for users that use scripts, since 
  1271.                 with  auto-name-detection their "key sequence"  that makes up 
  1272.                 their  name,  may change from login to login if a  similarly-
  1273.                 named user is added, or deleted, from the user list. 
  1274.  
  1275.                 Auto-name-detection  at logon always gives me a good chuckle.  
  1276.                 This occurs when a new user calls the second time,  and types 
  1277.                 their  name,  with the software producing half of it.    They 
  1278.                 just  pause,  and you feel the disbelief they are undergoing, 
  1279.                 "How the heck did the BBS know that...". 
  1280.  
  1281.                 If  the caller just hits [Enter] for their name,  then  auto-
  1282.                 name-detect  is immediately turned off (without bothering  to 
  1283.                 tell the caller). 
  1284.  
  1285.                 If the caller just hits [Enter] for their password, and it is 
  1286.                 not their password (yes,  passwords can be nothing)  then the 
  1287.                 software will turn off auto-name-detection.
  1288.  
  1289.                 Users now REALLY have two names:  a  normal name,  and a Real 
  1290.                 name.    The  normal,  usually the alias,   is  what's  seen.  
  1291.                 However,   the  Real name is now so real,  that the user  may 
  1292.                 logon using either (normal name will be displayed). 
  1293.  
  1294.                 When  listing  the users,  both normal and real name will  be 
  1295.                 shown as users.  It was necessary to do this,  as the ability 
  1296.                 to  change  names,  IEMSI,  and other real name  stuff  (like 
  1297.                 stopping  duplicate  names)   requires that I  mix  real  and 
  1298.                 alias/normal names in the index. 
  1299.  
  1300.                                                                           -26-
  1301.  
  1302.                 For this reason,  "List Users" will show both names (real and 
  1303.                 normal).   So if you require real names,  but yet your  users 
  1304.                 are  paranoid about others finding out the real  names,   you 
  1305.                 could either put the real names into Sysop Notes,  or disable 
  1306.                 the "List Users" command. 
  1307.  
  1308.                 Also  because of this name duplicity,  it will  also  wrongly 
  1309.                 show the number of active users in the stats. 
  1310.  
  1311. Login (cont.)   If the user has defined a logon note, it will be shown during 
  1312.                 the login process.
  1313.  
  1314.                 If the caller has any unread mail waiting for them, they will 
  1315.                 be given the option to read it at login. 
  1316.  
  1317.                 If the caller has multiple messages waiting,  they may select 
  1318.                 to Scan the messages (hitting "s")  which gives a single line 
  1319.                 of information about each message waiting for them. 
  1320.  
  1321.                 Multi-node  limitation:  the login system stops the same name 
  1322.                 from logging on multiple nodes.  The exception to this is the 
  1323.                 sysop.   The reasons for this exception: because <alt>x still 
  1324.                 leaves your name as "logged in"  on that node which makes  it 
  1325.                 tricky  to  log back in.   The second is  that  it's  assumed 
  1326.                 (perhaps  wrongly)  that the sysop knows what the  heck  he's 
  1327.                 doing.    We stop users because their records would  get  all 
  1328.                 tangled up--but I should be fixing this in the future. 
  1329.  
  1330.                 Technical  note:   if you do something to a user on  node  1, 
  1331.                 while  you are on node 2 (such as give higher SL,  or send  a 
  1332.                 message to), it will not occur.  I would call this a bug, but 
  1333.                 it  occurs because that user's record on node 1 is stored  in 
  1334.                 memory, so if we change the record on disk, it does not check 
  1335.                 for changes before re-writing the user's record back out when 
  1336.                 they logout.  When I fix this, then I think allowing the same 
  1337.                 user on multiple nodes will be possible. 
  1338.  
  1339.                 New users will be asked for their screen size using a  rather 
  1340.                 odd  method:   we output 50  lines with numbers and ask  them 
  1341.                 which  they  see at the top.   We do this because  "viewport" 
  1342.                 size is crutial with this software--it tries to use the whole 
  1343.                 screen.    We do not want to be confusing the user by  asking 
  1344.                 for a screen size--to which he might enter 25 when all he can 
  1345.                 see is 22 lines. 
  1346.  
  1347.                 See also: MENU SYSTEM, LogN, Welc, STRT
  1348.  
  1349.                                                                           -27-
  1350.  
  1351. READING         When  you  select a reading messages command from a menu  you 
  1352. MESSAGES        will  be given the range of message numbers and the number of 
  1353.                 new messages.  You will be asked to enter a message number to 
  1354.                 start at, or type "N" to start at the first new message.  The 
  1355.                 exception to this is when logging in and when reading Private 
  1356.                 Mail (if you are not a Message-Op), then it just displays the 
  1357.                 first appropriate  message to the command (such as first new, 
  1358.                 or first to/from the sender, etc.). 
  1359.  
  1360.                 A message is then displayed.
  1361.  
  1362.                 We use a nice screen-sized window reader.   The commands  are 
  1363.                 just what people expect: [enter] for next page, "R" to reply, 
  1364.                 "Q" to quit, [enter] for next message, etc.   But there are a 
  1365.                 lot of commands available,  hit "?"  to bring up a listing of 
  1366.                 the available commands. 
  1367.  
  1368. Header          The message's header information contains the following:
  1369.  
  1370.                     Current Message Area.
  1371.                     Current message's number.
  1372.                     The last message number in this area.
  1373.                     Who the message was from (and maybe their net address).
  1374.                     Who the message was/is to (and maybe their net address).
  1375.                     The date/time the message was sent.
  1376.                     The date/time the message was received.
  1377.                     The subject of the message.
  1378.                     If the message is a reply to another message.
  1379.                     If the to/from name is an active/current user (toggle).
  1380.                     If Net Mail messages have been [sent].
  1381.  
  1382.                 The sysop has a couple toggles to control what is seen. These 
  1383.                 are set in the Message Area Definitions. 
  1384.  
  1385.                 If  the Message Area is a Net Mail area,  and the net address 
  1386.                 is  not  zero  or  your's,   then  the net  address  will  be 
  1387.                 displayed. 
  1388.  
  1389.                 Messages have a counter that is updated each time the message 
  1390.                 has  been  read.   When the Message-Op of the area reads  the 
  1391.                 message, however, the counter is not increased.   This allows 
  1392.                 you to, say, review Private Mail without a user wondering why 
  1393.                 his private message says "read 2 times". 
  1394.  
  1395. Body            The  body  area  of the  message  is  displayed  using  user-
  1396.                 definable colors. 
  1397.  
  1398.                 A Message Area  Attribute  may be set to  show  "hidden"  net 
  1399.                 information  for Net Mail messages as well.   The information 
  1400.                 then shown is: 
  1401.  
  1402.                     Hidden "Kludge" lines.  Such as PID and MSGID.
  1403.                     EchoMail "origin", "tear", and SEEN-BY lines.
  1404.  
  1405.                                                                           -28-
  1406.  
  1407.                 You  can move up/down through the message (either one line at 
  1408.                 a time or by pages) using the arrow keys.  [Enter] will go to 
  1409.                 the next page,  until you are at the end of the message, then 
  1410.                 it will go to the next message. 
  1411.  
  1412.                 If  the software determines that the message is an ANSI,   it 
  1413.                 will  display it all at once.   This can really mess  up  the 
  1414.                 screen if the ANSI doesn't start with a clear screen command.  
  1415.                 Choosing  a  black background when reading these messages can 
  1416.                 help a lot. 
  1417.  
  1418. Footer          After the body, is a single (dark) line of information that 
  1419.                 shows:
  1420.  
  1421.                     Total number of replies to this message (toggle).
  1422.                     Date message was last read by anyone (toggle).
  1423.                     Total number of times the message has been read (toggle).
  1424.  
  1425.                 The user has a couple toggles to control what is seen.
  1426.  
  1427.                 This  line  does not appear until the end of the message  has 
  1428.                 been reached.  So this is a convienent method for you to know 
  1429.                 when you have reached the end of the message. 
  1430.  
  1431. Commands        The main command is "?", which brings up a help screen.
  1432.  
  1433.                 When  reading  a  message from a Scan  Messages  command  (or 
  1434.                 something  else  like the Zombie Messages),  almost  all  the 
  1435.                 commands will not work.  I'll fix this in the future. 
  1436.  
  1437.                 A number may be entered.   This is a "jump to number"  order. 
  1438.                 The message in the  current  message area that corresponds to 
  1439.                 that  number  will then be displayed.   Deleted messages  are 
  1440.                 ignored.    If  no message has that number,  then  the  first 
  1441.                 message with a higher number is displayed. 
  1442.  
  1443.                 Auto-detect for ZModem  and BiModem uploads is also done.  If 
  1444.                 you  were  the  poster  of the message,  the  files  will  be 
  1445.                 attached  (useful  if  you  forgot  to  do  the  File  Attach 
  1446.                 command).  If you are not the poster, then we exit to a menu, 
  1447.                 and  the uploads will be stored in the upload area 001  (that 
  1448.                 is,   it  will work just as if the person did an  auto-detect 
  1449.                 upload at a menu). 
  1450.  
  1451.                 After  some  of the below commands,  we move  to  the  "next" 
  1452.                 message.  If the user had been doing "Next" we go to the next 
  1453.                 message number higher,  if they had been doing "Previous"  we 
  1454.                 go to the next message number lower. 
  1455.  
  1456.                                                                           -29-
  1457.  
  1458. ?               Brings up an ANSI listing of the commands available.
  1459.  
  1460.                 For  the  sysop  and co-sysop,  a  second ANSI  listing  also 
  1461.                 appears. 
  1462.  
  1463.                 The  help  ANSIs  are stored in  HELPBLKS.TXT--feel  free  to 
  1464.                 change them. 
  1465.  
  1466. [Enter]         Display the next page.   If at the last page,  go to the next 
  1467.                 message. 
  1468.  
  1469. <right>/<tab>   Display the next page of the message.
  1470.  
  1471. <down>/+        Display the next line of the message.
  1472.  
  1473. <left>/         Display the previous page of the message.
  1474. <backspace>
  1475.  
  1476. <up>/-          Display the previous line of the message.
  1477.  
  1478. Again           Read the same message again.
  1479.  
  1480. Continue        This  command  will allow (only) the author of the message to 
  1481. message         continue the message as if they had never stopped.   It jumps 
  1482.                 them right back into the entering message text system. 
  1483.  
  1484.                 For this to work, the author must have saved the message with 
  1485.                 "Finish Later". 
  1486.  
  1487.                 See also: ENTERING MESSAGES
  1488.  
  1489. Delete          Delete the current message.
  1490.  
  1491.                 Only the sender, receiver, or Message-Op may do this. 
  1492.  
  1493.                 If the message contains file attaches,  the software will ask 
  1494.                 for a confirmation. 
  1495.  
  1496.                 The  user also has a toggle to confirm the deletion  of  each 
  1497.                 message. 
  1498.  
  1499. Edit            You  may edit/alter an already sent  message.    It is simple 
  1500.                 search and replace.  You give it a string to search for,  and 
  1501.                 a replacement string, and it does it. 
  1502.  
  1503.                 For historical accuracy,  the replaced text is never "really" 
  1504.                 replaced.    Editing  gives you an opportunity to clean up  a 
  1505.                 message.  But it also offers an opportunity to "rewrite" what 
  1506.                 you said.  To stop any kind of abuse: the original text has a 
  1507.                 backspace character added after each character--too  fast  to 
  1508.                 notice when  reading,   but  noticeable in backscroll/capture 
  1509.                 buffers. 
  1510.  
  1511.                                                                           -30-
  1512.  
  1513.                 Example,  I  have the message "Howdy,  thar!",  and decide to 
  1514.                 edit out "thar"  and replace it with "there".   When reading, 
  1515.                 it is seen as "Howdy,  there!",  but in the backscroll buffer 
  1516.                 you might see it as "Howdy, t▓h▓a▓r▓there!" depending on what 
  1517.                 type  of  communication  program you are  using.   Historical 
  1518.                 accuracy is maintained,   while giving the ability  to  alter 
  1519.                 already-sent messages. 
  1520.  
  1521.                 Only the sender, receiver, or message-op may edit it.
  1522.  
  1523. Forward         You  may forward the message being read  to  another  Message 
  1524.                 Area or another user. 
  1525.  
  1526.                 A note, "Forwarded from" is added to the top of the message.
  1527.  
  1528.                 A  sub-note may attached to the top or bottom of the message. 
  1529.                 This is useful for explaining why the message was  forwarded, 
  1530.                 or to add a comment before sending it onto the next person or 
  1531.                 Message Area. 
  1532.  
  1533.                 Only  the  sender,  receiver,  or Message-Op  may  forward  a 
  1534.                 message.  The current  Message  Area must not have the don't-
  1535.                 delete Attribute set. 
  1536.  
  1537.                 Technical note: Message Area Attributes,  such as always-use-
  1538.                 ANONYMOUS or always-use-ALL, are ignored.  If the message has 
  1539.                 normal TO/FROM fields,  then if moved to a Message Area  with 
  1540.                 those  special Attributes,  it  will still contain the normal 
  1541.                 TO/FROM fields, rather then be given the "FROM: Anonymous" or 
  1542.                 "TO: ALL" to which that area normally demands. 
  1543.  
  1544. Get files       This  option  is used to download files that are attached  to 
  1545.                 the message. 
  1546.  
  1547.                 If you are the author of the message, it goes to "Give Files" 
  1548.                 instead of this. 
  1549.  
  1550.                 The  files  successfully  downloaded are subtracted from  the 
  1551.                 user's  can-download bytes and daily time stats--unless  they 
  1552.                 are "(Free)". 
  1553.  
  1554.                 If there is only one file attached, it will begin sending it.  
  1555.                 For  more than one attach,  it will ask you to  select  which 
  1556.                 ones you want. 
  1557.  
  1558.                 The  files are subtracted from the user's can-download  bytes 
  1559.                 and  daily  time  stats.   This is done  for  all  the  files 
  1560.                 attached  to the message,  and regardless of whether  one  or 
  1561.                 more  of the files were successful or not.   That  may  sound 
  1562.                 strict, but it helps discourage use of the file attach system 
  1563.                 as an upload system (for interpersonal uploads). 
  1564.  
  1565.                                                                           -31-
  1566.  
  1567. Give files      This option is used to attach files to a message.
  1568.  
  1569.                 If you are not the author of the message,  it will instead do 
  1570.                 a "Get Files" command. 
  1571.  
  1572.                 The  author  can use this command to continue or add  to  the 
  1573.                 uploads  related  to a particular message.   This command  is 
  1574.                 mainly useful for finishing <incomplete> file attaches. 
  1575.  
  1576.                 A "Continue Message" for file attaches.
  1577.  
  1578.                 No upload crediting is done on file attaches.
  1579.  
  1580.                 The  author  need not have specified "Files  Attached"   when 
  1581.                 originally writing the message for this to work. 
  1582.  
  1583. Next            Read the next message in the message area,  or move onto  the 
  1584.                 next message area if reading mail at login or using the "Read 
  1585.                 All New Mail" command. 
  1586.  
  1587. Previous        Read the previous message in the current message area.
  1588.  
  1589.                 If reading  mail at login,  or using the "Read All  New Mail" 
  1590.                 command,  and there are no previous messages,  it does not go 
  1591.                 to the previous area, but exits the reading of messages. 
  1592.  
  1593. Quit            This will quit reading the messages.
  1594.  
  1595.                 If you are using "Read All New Mail" it will quit the current 
  1596.                 Message Area, and go to the next area. 
  1597.  
  1598. Reply           Enter  a message in  reply,   to the sender  of  the  current 
  1599.                 message. 
  1600.  
  1601. View a file     This  command will display a file attach.   Nothing fancy  is 
  1602. attach          done, it simply sends the contents of the file. 
  1603.  
  1604.                 This is extremely useful sometimes.  It allows a user to post 
  1605.                 a  message greater than your line limit (or 16k).   You could 
  1606.                 maintain a small library of text files in a message. 
  1607.  
  1608.                 Disadvantages  with  this are that you cannot quote from  the 
  1609.                 file, and it relies on the formatting of the file rather than 
  1610.                 then internal word wrapping/etc. formatting stuff. 
  1611.  
  1612.                 If there is only one file attached, it will begin showing it.  
  1613.                 For  more  than  one attach,  it will ask you  which  one  to 
  1614.                 display. 
  1615.  
  1616.                 The software will automatically not view the file if it is an 
  1617.                 archive.
  1618.  
  1619.                                                                           -32-
  1620.  
  1621. eXit to menu    This is the same as "Quit", except when doing a "Read All New 
  1622.                 Mail" it quits that too. 
  1623.  
  1624. Sysop Commands  Where is says "or Message-Op"  above,  it means it--even  the 
  1625.                 sysop  is excluded.   But,  of course,  it is the  sysop  who 
  1626.                 changes who the Message-Op is.   Anyways,   Sysop's  and  Co-
  1627.                 Sysop's have their own  commands.  Neither users nor Message-
  1628.                 Op's can do these. 
  1629.  
  1630.                 U User Maintenance
  1631.                   Access User Maintenance to edit users.
  1632.  
  1633.                 S Show Hidden Info Toggle
  1634.                   Show hidden Net Mail information.
  1635.  
  1636.                 & Msg --> File
  1637.                   Store a copy of the message to a disk file.
  1638.  
  1639.                 ! Msg --> New Msg Area
  1640.                   Move this message to anther area.
  1641.  
  1642.                 @ Edit Msg Info
  1643.                   Edit this messages' header.
  1644.  
  1645.                 > Move All File Attaches
  1646.                   Move the file attaches to another directory.
  1647.  
  1648.                 # Kill All File Attaches
  1649.                   Delete the File Attaches.
  1650.  
  1651.                 ^ Re-Inform User
  1652.                   Re-inform the receiver about this message.
  1653.  
  1654.                 * User & Msg --> Peer Review
  1655.                   Send the user to Peer Review processing.
  1656.  
  1657.                 / AI's "Go Fish" Reply
  1658.                   Give a standard sysop reply ("look around for yourself").
  1659.  
  1660.                 <alt>1 PGP Decrypt: View
  1661.                   Decrypt the message using the Sysop's key, then view it.
  1662.  
  1663.                 <alt>2 PGP Decrypt: Re-Save
  1664.                   Permanently decrypt the message using the Sysop's key.
  1665.  
  1666.                 Of the commands above, a Co-Sysop cannot do the following:
  1667.  
  1668.                     Msg --> File
  1669.                     Move All File Attaches
  1670.                     Decrypt Messages
  1671.  
  1672.                 The  software's "AI's Go Fish"  sends the user a quoted reply 
  1673.                 of  their message,  and adds a note that they should look for 
  1674.  
  1675.                                                                           -33-
  1676.  
  1677.                 the information themselves.  The message is sent from the AI.  
  1678.                 The original  message  is deleted.  The  text of the reply is 
  1679.                 stored  in TXT_BLKS.TXT block number 13.   You may edit it to 
  1680.                 your liking. 
  1681.  
  1682.                 The Peer Review processing is part of the Peer Review voting-
  1683.                 on-a-user  system (explained later).   This command will send 
  1684.                 the  message to a special message file,  delete the  message, 
  1685.                 and then send a prepared AI reply message to the user.    The 
  1686.                 user  "undergoing Peer Review"  Attribute "0"  is also turned 
  1687.                 ON.   The  special message file is a Peer Review  MESSAGE.P## 
  1688.                 file,  from which users participating in Peer Review will get 
  1689.                 the  information  to  make  their  voting decisions.  If  you 
  1690.                 execute  this command when the user already has a Peer Review 
  1691.                 file,  then this message is appended to that file--to provide 
  1692.                 further information for reviewers. 
  1693.  
  1694.                 The "re-inform"  command will "re-flag"  the user of the  TO: 
  1695.                 field  telling  them they have  a message.   This command  is 
  1696.                 useful after you have  accidentally   deleted  your  USERMSGS 
  1697.                 file--since  rebuilding it sets all pointers/etc.  to  zero--
  1698.                 this should be used on all "(Rcvd: -NO-)"  messages.   It  is 
  1699.                 mainly only used for when something goes wrong.   But you can 
  1700.                 pester the user by re-sending a message they may have ignored 
  1701.                 also. 
  1702.  
  1703. Misc.           If the sender of the message had included File Attaches,  and 
  1704.                 you respond with "Peer Review"  or "AI's Go Fish", than these 
  1705.                 File Attaches are deleted as  the original message is deleted 
  1706.                 automatically. 
  1707.  
  1708.                 When you move a message (either with the sysop Msg-->New Area 
  1709.                 command or the Forward command) the message will be given the 
  1710.                 next message number appropriate to that (destination) area. 
  1711.  
  1712.                 If a message has File Attaches, they are kept intact and with 
  1713.                 the  message when you move it around or re-edit it,  or  even 
  1714.                 Continue Later it. 
  1715.  
  1716.                                                                           -34-
  1717.  
  1718. ENTERING        Leaving messages is a two step process.   The first step asks 
  1719. MESSAGES        you about the message attributes:  subject, whether to quote, 
  1720.                 etc.   The second step  handles  the  entering of the message 
  1721.                 text   and  the  various  entering messages  commands,   most 
  1722.                 notably: saving. 
  1723.  
  1724.                 During this first step,  entering of information,  you select 
  1725.                 the  first  letter of what you want to do/change,   and  then 
  1726.                 [Enter] alone to move on to entering the message's text body. 
  1727.  
  1728.                 All  of  the  various  "objects"  on the  screen  are  active 
  1729.                 commands.   Hit the first letter of the object name (eg.  "T" 
  1730.                 for "To") to alter that objects data or state.  However, some 
  1731.                 of these options may not work--either because of  the type of 
  1732.                 message, type  of Message Area,  or with each other--then you 
  1733.                 will  get an informational note saying it cannot be done.
  1734.  
  1735.  
  1736. Heading Line    The  first  thing  displayed is a heading line.    This  line 
  1737.                 contains  information  about  the type of mail  to  be  sent: 
  1738.                 Public, Private, Anonymous, and Net. 
  1739.  
  1740.                 Because there are only two types of "From:", the posters name 
  1741.                 or Anonymous, there is no "From:" field shown. 
  1742.  
  1743.                 Attributes in Message Area Maintenance define what type of an 
  1744.                 area it is to be.   So if when posting a message you see that 
  1745.                 this  heading information is wrong,  you should recheck  your 
  1746.                 Attributes for that area. 
  1747.  
  1748. In              This is  the name of the message area to which the message is 
  1749.                 being posted. 
  1750.                 
  1751.                 This  command  option  can be used to move the message  to  a 
  1752.                 different Message Area.  Only those areas which the user both 
  1753.                 has toggled ON, and access to, are offered. 
  1754.  
  1755. To              To  whom you wish the message to go.   For replies,  this  is 
  1756.                 given the name of the poster of the original message. 
  1757.  
  1758.                 If the message area allows it, "ALL" can be used.
  1759.  
  1760.                 If the message area is an EchoMail or NetMail area,  then any 
  1761.                 name  be entered,  otherwise the name entered must be that of 
  1762.                 an active user. 
  1763.  
  1764.                 Entering  "Sysop"  will expand out to the message-op of  that 
  1765.                 area.    Entering "Fellow"  will change to "All",  which then 
  1766.                 changes to "Fellow Sentient Beings" (you can change this, see 
  1767.                 Settings). 
  1768.                 
  1769.                                                                           -35-
  1770.  
  1771.                 You  may use "*"  or "?".   This will bring up a list of  the 
  1772.                 first  20  names matching the characters you have entered  so 
  1773.                 far. 
  1774.  
  1775. Subject         The subject of the message.   For replies,  this is forced to 
  1776.                 be the same as that of the original message. 
  1777.  
  1778.                 The  subject  field of a  message  is  a  variable  thing--it 
  1779.                 depends  on the type of text you type.   This is because  the 
  1780.                 message subject's text is compressed. 
  1781.  
  1782.                 If  you  type  a  long subject,   and  the  system  "deletes" 
  1783.                 characters at the end of it after you hit [Enter],  then  you 
  1784.                 know  some of subject has just been deleted because it turned 
  1785.                 out  to be too long.   Usually only occurs with subjects that 
  1786.                 are all uppercase characters. 
  1787.  
  1788.                 Any leading spaces are trimmed off.
  1789.  
  1790. At              This  is the NetMail address to send the message to  (if  the 
  1791.                 area is a NetMail area). 
  1792.  
  1793.                 Hit a "?" to get some help on what to enter.
  1794.  
  1795.                 Merely hitting return will set it to zero--making it a local-
  1796.                 only message. 
  1797.  
  1798.                 The   net  address  supports  the  Fido  format,   which   is 
  1799.                 xxxxx:yyyyy/zzzzz.  Where "xxxxx" is the zone number, "yyyyy" 
  1800.                 is the net number,  and "zzzzz"  is the node number.  But you 
  1801.                 can  type "x.y.z"  or "x y z"  or most anything and  it  will 
  1802.                 work. 
  1803.  
  1804.                 The  software  uses your net address to fill in  any  missing 
  1805.                 information.   That is, if your address is "a:bbb/cccc", then 
  1806.                 entering  only  "##"  will be converted to  "a:bbb/##",   and 
  1807.                 entering "##/##" will be converted to "a:##/##". 
  1808.  
  1809.                 A private message without a net address in a Private  NetMail 
  1810.                 area will be,  instead,  correctly put into Private Mail area 
  1811.                 (001) instead. 
  1812.  
  1813.                 You  are  able to send messages to net addresses not  in  the 
  1814.                 sysop's nodelists,  but there is no guarentee these  messages 
  1815.                 will reach their destination.
  1816.  
  1817.                 Besides  Fido-style addresses,  you can enter Internet  style 
  1818.                 addresses  (name@domain.site,  but actually anything).    The 
  1819.                 software   will  properly  store  these  addresses  with  the 
  1820.                 message,   but  at this time does not use them for  anything.  
  1821.                 There is a Message Area Attribute to turn this on. 
  1822.                 
  1823.                                                                           -36-
  1824.  
  1825. Line numbers    This  toggles ON/OFF whether you wish to see line numbers  at 
  1826.                 the start of each line when entering the message text. 
  1827.  
  1828.                 It  is  very tricky to edit a message without  line  numbers.  
  1829.                 But turning line numbers OFF allows one to put more text into 
  1830.                 a message,  and makes large ASCII sends (from caller) of text 
  1831.                 more reliable. 
  1832.  
  1833. Quote original  This  will  quote  the entire  original  message  when  doing 
  1834.                 replies. 
  1835.  
  1836.                 When  entering  the body of the message,  you  may  then  use 
  1837.                 Delete to remove any quote lines you do not want,  and Insert 
  1838.                 to insert between quote lines if you want. 
  1839.  
  1840.                 You  cannot upload a prepared message and quote the  original 
  1841.                 at the same time. 
  1842.  
  1843. Upload message  Upload a prepared message. 
  1844.                 
  1845.                 You  will not be allowed to select this option if you already 
  1846.                 have selected to quote the original message. 
  1847.  
  1848.                 The  uploaded  file  should be  a standard text  file.    Not 
  1849.                 compressed, nor any other weird characters (those below ASCII 
  1850.                 32).   ANSI codes and graphics characters are allowed, but it 
  1851.                 would be better for everyone if they were File Attached. 
  1852.                 
  1853.                 When  this  feature  is used from the console,   it is called 
  1854.                 importing.   You will then be asked for a pathname to load in 
  1855.                 as the message.  The original file will not be deleted.
  1856.  
  1857.                 Processing  includes truncating any additional  lines  beyond 
  1858.                 your  set  maximum  number  of  lines  allowed  in  messages.  
  1859.                 Normally that is 98 lines. 
  1860.  
  1861.                 This command can be used to import/upload text files and .REP 
  1862.                 packets.   However, if the console does import a .REP it will 
  1863.                 be deleted after importing. 
  1864.                  
  1865.                 Uploading/importing  an  ANSI  for a message (or  part  of  a 
  1866.                 message) is easy.  Just remember: no ANSI line longer than 78 
  1867.                 characters--word  wrap does screw up long ANSI lines.    File 
  1868.                 Attaching  is usually a better solution because it  lets  one 
  1869.                 attach  very large ANSIs and allows the user to download  the 
  1870.                 ANSIs intact if they want. 
  1871.  
  1872.                 When  uploading an ANSI,  only the maximum number of  allowed 
  1873.                 lines per message are imported from the file (usually 100  or 
  1874.                 200).  After uploading, the screen will look horrendous, just 
  1875.                 ignore it and do Save right away. 
  1876.  
  1877.                 See also: SETTINGS, MsgD
  1878.  
  1879.                                                                           -37-
  1880.                 
  1881. Carbon Copies   You may send multiple copies  of  private  messages  to  many 
  1882.                 users.  These are known as CC's. 
  1883.  
  1884.                 When you save the message,  the software will ask you whether 
  1885.                 you  wish  to  include all these names at  the  top  of  each 
  1886.                 message, or not. 
  1887.  
  1888.                 You are not able to send CC's in NetMail,  EchoMail,  or with 
  1889.                 File Attaches. 
  1890.  
  1891. File Attaches   Select this if you wish to attach files to the message.
  1892.  
  1893.                 When  the message is saved,  the software will ask  that  the 
  1894.                 author  upload  the files to be attached.   Or,   if  at  the 
  1895.                 console,   the pathnames you wish to duplicate and attach  to 
  1896.                 the message. 
  1897.  
  1898.                 Files  Attaches are stored in the MSGSTUFF directory.    Each 
  1899.                 message with files attached will have its own directory under 
  1900.                 the format:  MessageNumber.Area  Example:  Private Mail (area 
  1901.                 001) message number 5000 would be stored in \MSGSTUFF\5000.1.  
  1902.                 You, the sysop, may add or delete the files and/or directory, 
  1903.                 without concern--there is no  internal tracking done for  the 
  1904.                 File  Attaches  (the directory is  either there and  contains 
  1905.                 files, or it is not). 
  1906.  
  1907.                 If  you forget to select File Attaches,  or just want  to  be 
  1908.                 lazy,  then you  can "just upload them"  at the command line.  
  1909.                 This will cause the message to  be saved, and for it to begin 
  1910.                 receiving the  transferred  files  and  attach  them  to  the 
  1911.                 message.  This does not work from the console.
  1912.  
  1913.                 If the upload is aborted,  or you want to add more later, you 
  1914.                 can do so when reading the message. 
  1915.  
  1916.                 You cannot do File Attaches with Carbon Copies.
  1917.  
  1918.                 Only the sysop can make the File Attaches free.
  1919.  
  1920. Reception       This will drop you a short message confirming that the person 
  1921. Report          received and read this message. 
  1922.  
  1923.                 This can only be used with private messages.
  1924.  
  1925.                 The  RR  is  sent  when the user reads  the  message  on-line 
  1926.                 (usually  at  login),   but not if (for  some  reason)   they 
  1927.                 download it (like in a .QWK packet). 
  1928.  
  1929.                                                                           -38-
  1930.  
  1931. Encrypt         This  is a sysop-only command that will let you  encrypt  the 
  1932.                 message with PGP. 
  1933.  
  1934.                 For this to work, you must already have the public key of the 
  1935.                 person to whom the message is TO: on your PGP key ring. 
  1936.  
  1937.                 See also: PGP.HLP
  1938.  
  1939. Do A Freq       This  command allows the sysop to do FREQ's  (File  Requests) 
  1940.                 from other BBS's via Net Mail. 
  1941.  
  1942.                 The  actual  FREQ attempt will be done when the  sysop  calls 
  1943.                 manually with <alt>d and hits <end>, or the next time the BBS 
  1944.                 calls that BBS number for a normal net mail exchange. 
  1945.  
  1946.                 You may do a "crash" (immediate) version of this command from 
  1947.                 the waiting-for-caller menu. 
  1948.  
  1949.                 See also: NET_MAIL.DOC
  1950.  
  1951. Net FAs         This  command  allows  the sysop to Net  Mail  files  without 
  1952.                 needing to make them File Attaches as part of a message. 
  1953.  
  1954.                 Like "Do A Freq",  the actual mailing of the file is done the 
  1955.                 next time your BBS calls their BBS and exchanges mail. 
  1956.  
  1957.                 You may do a "crash" (immediate) version of this command from 
  1958.                 the waiting-for-caller menu. 
  1959.  
  1960.                 See also: NET_MAIL.DOC
  1961.  
  1962.  
  1963. Body            Entering of text is straight forward.
  1964.                 
  1965.                 Quoted text shows up bracketed. 
  1966.                 
  1967.                 Hitting backspace can go to the previous line. 
  1968.  
  1969.                 Cursor movement keys (up, down, left, right) are converted to 
  1970.                 backspaces (up,  left)  or spaces (right, down).  There is no 
  1971.                 moving about the message with the cursor keys (yet). 
  1972.                 
  1973.                 With the exception  of the cursor movement codes,  ANSI codes 
  1974.                 are allowed in messages. 
  1975.                 
  1976.                 Technical note:   These cursor movement keys  are "[A", "[B", 
  1977.                 "[C",  and "[D".  Now,  these codes are a subset of the  full 
  1978.                 ANSI  set--so  if a user wanted to  upload  a  complex  ANSI, 
  1979.                 theses  codes might be part of it and screw it up.   But  the 
  1980.                 vast  majority of times these keys get  encountered  are when 
  1981.                 the  user tries to move around the screen to do editing.   To 
  1982.                 use the same  codes in an ANSI image  as part of the message, 
  1983.                 one should use: "[1A", "[1B", "[1C", and "[1D". 
  1984.  
  1985.                                                                           -39-
  1986.                 
  1987.                 There  is trouble,  however,  with ANSI lines that exceed  78 
  1988.                 characters.  So, while ANSIs are best in single-line form for 
  1989.                 menus,   for  messages they need to be  in  multi-line  form.  
  1990.                 TheDraw  can  handle  both forms.   To put  ANSI  codes  into 
  1991.                 messages remotely,   you must either do an ASCII file send of 
  1992.                 an ANSI file, or upload that part of the message as a message 
  1993.                 upload  (then  the cursor movement keys are  allowed  in  the 
  1994.                 ANSI). 
  1995.  
  1996.                 ANSIs  jumping all over the screen using either positional or 
  1997.                 cursor  movements keys is simply not the way to do in-message 
  1998.                 ANSIs.    The  proper way is to design your ANSI to display a 
  1999.                 line of ANSI text/drawing, do a CR/LF,  then display the next 
  2000.                 line of ANSI text/drawing,  etc.  until done.   Like  sending 
  2001.                 ASCII text, but with hidden ANSI codes. 
  2002.  
  2003.                 Quoting  of  text with ANSI characters can mess up the  quote 
  2004.                 brackets'   appearance--unless  one  follows  the  guidelines 
  2005.                 above. 
  2006.  
  2007.                 Graphics characters (ASCII codes above 127)  are also allowed 
  2008.                 in messages.
  2009.                 
  2010.                 Exit to the command line by hitting enter twice.
  2011.  
  2012.                 One may also type: /s, /es, /post, or /exit at the start of a 
  2013.                 line  to  immediately  save and  exit  the  entering  message 
  2014.                 process.  All the commands work alike. 
  2015.  
  2016.                 Hanging  up saves the message (as "Finish Later"),  but loses 
  2017.                 the line being worked on. 
  2018.  
  2019.                 If  a user has toggled active grammar checking to  ON,   then 
  2020.                 each word is checked as they enter it,  and a beep is sounded 
  2021.                 when  that  word is not found.   User's should not  have this 
  2022.                 option ON when doing an ASCII send of message text from their 
  2023.                 communication  program's buffer or from a file at their  end.   
  2024.                 This  is  because  the beeping might  screw  everything  up--
  2025.                 although  I  suspect  it may be OK if both of you  are  using 
  2026.                 modems with MNP 4 or better. 
  2027.  
  2028.                 A //G may  be typed at the start of any line to toggle active 
  2029.                 grammar  checking from ON to OFF,  and vice-versa.   The  "G" 
  2030.                 must be in upper case. 
  2031.  
  2032.                 See also:  KEYS.HLP
  2033.  
  2034. Command Line    Besides  the  commands below,   auto-detect  for  ZModem  and 
  2035.                 BiModem uploads is also done.   Doing an upload in the middle 
  2036.                 of  a  message will not destroy the message,  and it will  be 
  2037.                 saved before starting the transfer. 
  2038.  
  2039.                                                                           -40-
  2040.  
  2041.                 Users  may  set toggles to determine if the total  number  of 
  2042.                 words,  lines, and/or characters should be shown.   Similarly 
  2043.                 for  time  to enter the message and  a  Characters-Per-Minute 
  2044.                 rate. 
  2045.  
  2046.                 Editing  by line number is much more difficult when the  user 
  2047.                 has "no-numbers message entry" toggled to ON. 
  2048.  
  2049. %               Save the message to a message file.
  2050.  
  2051.                 Only the sysop may do this.   But there is a Toggle which you 
  2052.                 can use to let Message-Op's do this also. 
  2053.  
  2054.                 The message body is then stored in a MESSAGE.### file.  Which 
  2055.                 then  can  become  part  of other  messages  via  the  %%%### 
  2056.                 command. 
  2057.  
  2058.                 You could rename the file to something like MESSAGE.MJR,  and 
  2059.                 then just use "%%%MJR" anywhere in a message. 
  2060.  
  2061.                 These   are   particularly  useful  if  you  have   a   fancy 
  2062.                 "signature"--easier  to do a quick "%%%xyz"  when entering  a 
  2063.                 message at the end of a message than a complex signature. 
  2064.  
  2065.                 When  we  export the message to .QWK or via net mail,   these 
  2066.                 "%%%"s are expanded out first. 
  2067.  
  2068. Abort           Aborts the current message.  No message is sent.
  2069.  
  2070.                 If  you entered more than 80  characters or so,  you will  be 
  2071.                 asked to confirm that you really want to abort the message. 
  2072.  
  2073. Continue        This lets you continue your message from the point where  you 
  2074. entering        left off. 
  2075.  
  2076. Delete lines    Use  this to delete a line or a  block  of  lines  from  your 
  2077.                 message. 
  2078.                 
  2079. Edit            This option will search for an exactly matching string in the 
  2080.                 message, and replace it with another string you supply. 
  2081.                 
  2082.                 This  is  the  command  to use for fixing  up  typos  in  the 
  2083.                 message. 
  2084.  
  2085. Finish later    This  will save the message as a special "I want to finish it 
  2086.                 later" message. 
  2087.  
  2088.                 What this means is that when you (the author)  again read the 
  2089.                 message,   you will be able to "Continue message".  Selecting 
  2090.                 this option will let you continue the message,  edit it, etc. 
  2091.                 just as if you had never stopped. 
  2092.  
  2093.                                                                           -41-
  2094.  
  2095.                 After saving,  the author can still (or not)  upload any File 
  2096.                 Attaches if they wish. 
  2097.  
  2098.                 The  message  is saved--and actually sent.   If the  receiver 
  2099.                 logs  on  before you have finished (at a later time or  date) 
  2100.                 then they will see it as a completed message.
  2101.  
  2102.                 In theory, anyone could just use this instead of Save to save 
  2103.                 all  their  mail.   Then later modify what they said  in  the 
  2104.                 message, and proclaim "that is what I said originally".   The 
  2105.                 defense  for  this is that the original message's  text  will 
  2106.                 appear as orphaned text when you purge. 
  2107.                 
  2108.                 This command is not available if the message has CC's.
  2109.  
  2110. Grammar check   This does a spell check on your message,  and offers you  the 
  2111.                 opportunity to correct the misspelled words. 
  2112.  
  2113.                 When  a  word is not found,  and the user hits  [Enter]  when 
  2114.                 asked for the corrected spelling,  that word is put into your 
  2115.                 WORDS.NEW  file.    This file will be utilized in the  future 
  2116.                 when I add the ability to update the WORDSx.DAT files. 
  2117.  
  2118.                 While  it is  checking,  hitting [Enter] or any of  the valid 
  2119.                 entering  messages  command keys will bring you back  to  the 
  2120.                 command line. 
  2121.  
  2122. Insert lines    Use this to insert text into your message.
  2123.  
  2124.                 You will be asked which line number to insert before, then it 
  2125.                 will  allow  you  continue  using the  normal  message  entry 
  2126.                 system. 
  2127.  
  2128.                 You can insert into quotes to produce the "quote-reply-quote-
  2129.                 reply-quote-reply" type of message.
  2130.  
  2131. List            This lists your message, including line numbers.  
  2132.                 
  2133.                 Colorization codes are not acted upon, but simply displayed. 
  2134.                 
  2135.                 While  it is  listing,   hitting [Enter] or any of  the valid 
  2136.                 entering  messages  command keys will bring you back  to  the 
  2137.                 command line. 
  2138.  
  2139. Preview         This  displays your message exactly as it  will  be  seen  by 
  2140.                 others when reading it. 
  2141.                 
  2142.                 Colorization codes are acted upon.
  2143.  
  2144.                 None of the reading messages commands will work, although "?" 
  2145.                 will still bring up the help screens. 
  2146.  
  2147.                                                                           -42-
  2148.                 
  2149. Save            This compresses and saves the message.
  2150.  
  2151.                 The  software has the ability to maintain a text file of  all 
  2152.                 messages   added  to  the  Message  Area  (see  Message  Area 
  2153.                 Attributes to turn it on/off).  When the message is saved, it 
  2154.                 will  be appended to this file.   This feature is useful  for 
  2155.                 providing a way for whole message areas to be  downloaded  or 
  2156.                 FREQ'd   (rather  than  using  the  Message  Downloading/.QWK 
  2157.                 system). 
  2158.                 
  2159.                                                                           -43-
  2160.  
  2161. MESSAGE FILES   Using an editor (or the "%"  command)  you,  the  sysop,   or 
  2162.                 whoever  you  designate as the Message-Op (for an area)   can 
  2163.                 send  messages  that include a special  "load  message  file" 
  2164.                 command.  This command, "%%%" when embedded within a message, 
  2165.                 will cause the software to search out a file and load it into 
  2166.                 the message when reading. 
  2167.  
  2168.                 Message files start with the name "MESSAGE."  and contain a 3 
  2169.                 letter extension ("xxx",  so "MESSAGE.xxx").   It provides  a 
  2170.                 method  of  sending lots of identical letters while  using  a 
  2171.                 minimum amount of drive space. 
  2172.  
  2173.                 Basically all these message files contain is text.   You  may 
  2174.                 create,  or alter, these files with any standard text editor.  
  2175.                 Even put in ANSI codes. 
  2176.  
  2177.                 Usually, though, you will just create the message and use the 
  2178.                 "%"   command to save it to a file.   With this method,   the 
  2179.                 computer increments file extensions ("###")  from the highest 
  2180.                 found  (example:  if you have MESSAGE.009   then  MESSAGE.010 
  2181.                 would be created).  However, you may re-name these extensions 
  2182.                 to any three characters you like. 
  2183.  
  2184.                 Message files should not exceed 8,192  bytes in  size.  To do 
  2185.                 so is risky since it relies on string space. 
  2186.                 
  2187.                 Inserting  a  message  file into  a  message  is  simplicity: 
  2188.                 "%%%xxx"  anywhere inserts the message ("xxx").   They do not 
  2189.                 need their own line.   They can be in the middle of a "word": 
  2190.                 "You  should%%%xxx.".    They  can  be  recursive--the   file 
  2191.                 messages  may contain "%%%"  codes themselves--warning,   the 
  2192.                 system  does not protect you from looping,  which will  crash 
  2193.                 the  system (looping:  xxx contains reference to xxx,  or xxx 
  2194.                 contains reference to yyy and yyy contains reference to  xxx, 
  2195.                 etc.) 
  2196.  
  2197.                 The system only expands the "%%%"  codes into messages if the 
  2198.                 message was sent by: the AI, the Sysop, or the Message-Op for 
  2199.                 the  area.    Any  other  authors  and the  reader  will  see 
  2200.                 "%%%xxx".   Similarly for message  files that are not  found, 
  2201.                 "%%%xxx" gets displayed. This allows you to use "%%%%%%%%%%%" 
  2202.                 without worrying, and users cannot find out your message file 
  2203.                 contents, nor use them in their own messages. 
  2204.  
  2205.                 Mass  Mail  uses these to send letters to users of a  defined 
  2206.                 Security  Level  value.    You also use this to  configure  a 
  2207.                 message  to  be sent to new users (to introduce them to  you, 
  2208.                 the BBS, and the interface). 
  2209.                 
  2210.                 There is nothing stopping you  from creating the messages on-
  2211.                 the-fly and just using  the  "%%%" codes instead of re-typing 
  2212.                 large blocks of text. 
  2213.  
  2214.                                                                           -44-
  2215.  
  2216.                 The  "%"  command lets you use the message entry system as  a 
  2217.                 text editor.   However, remember that messages are divided up 
  2218.                 by "paragraphs"--a paragraph is text followed by a CR/LF  (an 
  2219.                 [Enter]).   Remember,  text is word wrapped.   So if you edit 
  2220.                 the  file,   you will probably see lots of lines that  extend 
  2221.                 past   column  80.    If  you  do  choose  to  edit  messages 
  2222.                 externally,  I  recommend only using CR/LF's where necessary, 
  2223.                 let the software do  the word wrap (really,  you just need to 
  2224.                 follow  the  same  advice as  Uploading/Importing  a  message 
  2225.                 uses). 
  2226.  
  2227.                 Normally only the Sysop and the AI may send messages with "%" 
  2228.                 codes.    However,  you may change a Toggle to also allow all 
  2229.                 Message-Op's  to  also send messages with "%"   message  file 
  2230.                 codes. 
  2231.  
  2232.                 %%%LOK is a special order.  It will set the user's locked-out 
  2233.                 attribute, so that when they are done reading messages,  they 
  2234.                 will  be  hung  up on and locked out  of  the  system.    The 
  2235.                 "%%%LOK"  command is ignored until the name logged in matches 
  2236.                 the  TO:  field of the message.   This allows you,  or anyone 
  2237.                 besides  the  person the message is to,  to safely  read  the 
  2238.                 message. 
  2239.  
  2240.                 With any "%%%xxx"  command,  three stages are done:  first we 
  2241.                 see  if there is a MESSAGE.xxx file to display,  if there is, 
  2242.                 then we show it.   Second, if no MESSAGE.xxx file exists,  we 
  2243.                 see if it is a special command,  if it is,  we do the command 
  2244.                 if possible.  Lastly,  we simply display the "%%%xxx" because 
  2245.                 we cannot do anything with it. 
  2246.  
  2247.                 A  serious draw back with this:  one can never remember which 
  2248.                 MESSAGE.xxx  contains  what.   In a future release,  I   will 
  2249.                 extend this to support "%%%pathname". 
  2250.                  
  2251.                 See also: SETTINGS, TOGGLES
  2252.  
  2253.                                                                           -45-
  2254.  
  2255. RAMBLINGS       Ramblings  are  both message files  and  text  files.    They 
  2256.                 contain messages stored in text file format. 
  2257.  
  2258.                 Users append messages to the end of these files.
  2259.  
  2260.                 Unlike regular message bases, however, these utilize the same 
  2261.                 NewFilesPtr  system  as  files do.   After each  logon,   all 
  2262.                 formerly new ramble entries become old. 
  2263.  
  2264.                 Anyone can add to a ramble.
  2265.  
  2266.                 Anyone  above a defined SL may create a ramble.   The creator 
  2267.                 may   even  restrict  access  to  the  ramble  by  a  SL  (SL 
  2268.                 restrictions  higher  than  that of the  users  own  are  not 
  2269.                 accepted). 
  2270.  
  2271.                 Only  the creator of the ramble,  or the sysop,  can delete a 
  2272.                 ramble. 
  2273.  
  2274.                 Any ramble files containing new entries are highlighted.
  2275.  
  2276.                 Technical  note:    Ramble  file  information  is  stored  in 
  2277.                 RAMBLING.DAT, and ramble message text is stored in RAMBLE.### 
  2278.                 (001 to 996).  More than 996 will merely overwrite 001. 
  2279.  
  2280.                 While a user cannot upload a message in file form (like  they 
  2281.                 can  with the message system)  they can do an ASCII send from 
  2282.                 their end to send up a prepared message. 
  2283.  
  2284.                 The ramblings menu has a statistics/title toggle option.  The 
  2285.                 statistics  are useful for finding new messages if  you  have 
  2286.                 not checked in on the rambles after a few calls. 
  2287.  
  2288.                 When reading rambles,  you can elect to read the whole thing, 
  2289.                 just new entries,  or jump past a specified number of entries 
  2290.                 before reading. 
  2291.  
  2292.                 Rambles  are meant to be foot-loose-and-fancy-free.   A  wide 
  2293.                 open  system  for quick exchanges along a single topic.    It 
  2294.                 works best if you give can-create-rambles access all users. 
  2295.  
  2296.                 See also: SETTINGS
  2297.  
  2298.                                                                           -46-
  2299.  
  2300. FILE AREA       There  are  two ways to list files in the  File  Areas:   the 
  2301. CONTENTS        normal paged system, and a Point & Shoot system. 
  2302. LISTING
  2303.                 File  areas  to which the user does not have access  are  not 
  2304.                 shown.    The area numbers (1..n)  that the user will see  is 
  2305.                 adjusted  properly  (if you have 4 areas and area #2 the user 
  2306.                 has to-low a Security Level value for,  they still see 1,  2, 
  2307.                 3, not 1, 3, 4). 
  2308.  
  2309. Paged System    What I reference below as "the file system"  is that part  of 
  2310.                 the software where files and descriptions are displayed for a 
  2311.                 File Area, and which users may select to download. 
  2312.  
  2313.                 This section does not deal with the commands to get you  into 
  2314.                 the file system, merely on the file system itself. 
  2315.  
  2316.                 Firstly,  you must remember that the file system is far  more 
  2317.                 powerful than any other ever invented. 
  2318.                 
  2319.                 Most BBSs are happy just to display a  FILES.BBS file that is 
  2320.                 stored  in that File Area's  directory.  This software's file 
  2321.                 system not only lets you seamlessly fold multiple directories 
  2322.                 into a single File Area, but it lets you define both the File 
  2323.                 Area  header  and how  the file description lines are  to  be 
  2324.                 displayed.  These too are covered in other areas of the docs. 
  2325.  
  2326.                 In the file system,  the AI does a lot of management for you.  
  2327.                 Discovering  and removing and fixing file entries.   It tells 
  2328.                 you what it is doing at the top line of the screen (only  the 
  2329.                 console  see's  this).   So powerful is it,  that  you  could 
  2330.                 scramble all the files on your HD--putting them randomly into 
  2331.                 different  areas,   and (after listing all the  areas)   your 
  2332.                 entire on-line file lists would again be 100% accurate.  When
  2333.                 it discovers a file, use uses the AI face for uploaders name.
  2334.  
  2335.                 But don't worry about this, it's automatic.
  2336.                 
  2337. The display     As mentioned you will be able to configure the header line(s) 
  2338.                 and the description line(s).  You will be able to do this for 
  2339.                 each area individually if you want.   This is explained later 
  2340.                 in the docs. 
  2341.  
  2342.                 Right now, I want to cover some of what you will see.
  2343.  
  2344.                 The  number of lines of files/descriptions displayed  depends 
  2345.                 on the users defined screen size.  As usually, if you did not 
  2346.                 start  the program with /USEVGA the screen may look weird  on 
  2347.                 the  console  when the user has a > 25  screen  size.    Just 
  2348.                 ignore that. 
  2349.  
  2350.                 Files  have  a file selection letter displayed next to  them.  
  2351.                 This is "A" through "Z".   If we reach "Z"  before we fill up 
  2352.  
  2353.                                                                           -47-
  2354.  
  2355.                 the  screen,   we  stop  displaying entries  at  that  point.  
  2356.                 Example:   this happens a lot with GIF areas and > 25  screen 
  2357.                 modes because GIFs  usually  only have one line.   For normal 
  2358.                 File  Areas, enough  of  the files have extended descriptions 
  2359.                 that this rarely occurs.   This method was considered  better 
  2360.                 than using numbers (1 to 50). 
  2361.  
  2362.                 When displaying the last file,  if it has a long  description 
  2363.                 that doesn't fit,  we display what we can,  and when the user 
  2364.                 goes on to the next screenful of files, this file will be the 
  2365.                 first  one,  and it will have its full description displayed.  
  2366.                 This  method was deemed better than not displaying  the  file 
  2367.                 (leaving  blank  lines  at the  bottom)   or  truncating  the 
  2368.                 description and not displaying it on the next page. 
  2369.                 
  2370.                 New files are automatically highlighted to bright white.
  2371.  
  2372.                 If a file has some Attributes,  they are displayed using  the 
  2373.                 following four letters:
  2374.  
  2375.                   f appears if the file is free.
  2376.  
  2377.                   g appears if the file is a group-specific-only file.
  2378.  
  2379.                   i appears if the file is invisible.  Only the File-Op or 
  2380.                     sysop will see the file entry. 
  2381.  
  2382.                   p appears if the file requires a password to download.
  2383.  
  2384.                 When  listing  "new files",  the files are sorted  newest  to 
  2385.                 oldest  with  the  newest one being on top.   They  are  also 
  2386.                 displayed by area. 
  2387.  
  2388.                 When  listing for files containing a search string,  they are 
  2389.                 listed newest to oldest (newest at top), and in a single-area
  2390.                 like format.  The display uses area #1's defined Form Type.
  2391.  
  2392. Command line    There  are  usually just two command lines,   one  that  says 
  2393.                 "Option, ?, or [Enter] to move on:", and some question asking 
  2394.                 for a file name. 
  2395.  
  2396.                 During many of the options below, a  user may type the single 
  2397.                 letter rather than the filename for files that were listed on 
  2398.                 the  screen.   They may also enter file names for files  that 
  2399.                 are  not displayed,  and in any File Area to which they  have 
  2400.                 access. 
  2401.  
  2402.                 From the main command line:
  2403.                 
  2404.                   "?" will bring up a list of commands.
  2405.                 
  2406.                                                                           -48-
  2407.  
  2408.                   [Enter]
  2409.                   will display the next page of files, or, if at the end, go
  2410.                   to the next File Area and display its first page of files.
  2411.  
  2412.                   <up>/<down>/-/+
  2413.                   can be used to redisplay the files either moving down one
  2414.                   file or back one file
  2415.  
  2416.                   <left>/<right>/<bksp>/<tab>
  2417.                   does the same, but instead does it a page of entries at a
  2418.                   time.
  2419.                 
  2420.                 You may also simply type a number,  and we will jump to  that 
  2421.                 area and display its contents.   Including the number of  the 
  2422.                 current area,  for which it will simply restart drawing  from 
  2423.                 the start. 
  2424.  
  2425.                 Auto-detect of Zmodem and BiModem uploads is also done.
  2426.                 
  2427. User commands   The following is a list of the commands anyone may type.  For 
  2428.                 the most part they are self-explanatory. 
  2429.                 
  2430.                 Quit
  2431.  
  2432.                   Stop listing files and exit the file system.
  2433.  
  2434.                   If  the  user has anything waiting in the  download  queue, 
  2435.                   they are asked if they want to download it. 
  2436.                   
  2437.                 Next Area
  2438.  
  2439.                   Moves  the  user to the next File Area to which  they  have 
  2440.                   access. 
  2441.  
  2442.                   If we are at the end, we exit the file system. 
  2443.                   
  2444.                   If  the  user has anything waiting in the  download  queue, 
  2445.                   they are asked if they want to download it. 
  2446.  
  2447.                 Previous Area
  2448.  
  2449.                   Moves the user to the previous File Area to which they have 
  2450.                   access. 
  2451.  
  2452.                   If already at the first area, we just restart and list that 
  2453.                   area again. 
  2454.  
  2455.                 Redraw
  2456.  
  2457.                   This command simply redraws the screen.   Useful if it gets 
  2458.                   too cluttered when adding files to the download queue. 
  2459.                   
  2460.                                                                           -49-
  2461.  
  2462.                 Extended File Info
  2463.  
  2464.                   This  turns on the showing of the extended file information 
  2465.                   lines.    These lines are usually one or two lines for each 
  2466.                   file  that  contains information such as who  uploaded  the 
  2467.                   files and the date it was last downloaded. 
  2468.  
  2469.                   Some File Forms do not have extended information lines, but 
  2470.                   you can always add/change them yourself. 
  2471.  
  2472.                   This is a toggle command,  and when selected it will redraw 
  2473.                   the screen.  It is kept ON until you go to another area, or 
  2474.                   again toggle it OFF. 
  2475.                   
  2476.                 Work On Archive
  2477.  
  2478.                   This will let you access the contents of archives.
  2479.  
  2480.                   Things you can do include:
  2481.  
  2482.                     List the contents of the archive.
  2483.                     Display text files in the archive.
  2484.                     Download files from the archive (user ratios do apply).
  2485.                     Test the integrity of the archive.
  2486.  
  2487.                 List From A Point On
  2488.  
  2489.                   This  is a very useful command when there are large numbers 
  2490.                   of files in an area. 
  2491.  
  2492.                   It  asks  you for a letter,  you type one,  and  it  starts 
  2493.                   listing the files in that area from that letter on. 
  2494.  
  2495.                 Upload
  2496.  
  2497.                   This will let the user upload to the current area.   If the 
  2498.                   area  does  not  allow uploading,  it will try to  let them 
  2499.                   upload to area #1 instead. 
  2500.  
  2501.                   After the upload, we return and redraw the screen.
  2502.  
  2503.                 Add To DL Queue
  2504.  
  2505.                   This command lets users add files to the download queue.
  2506.  
  2507.                   The current contents of the queue are displayed,  and  each 
  2508.                   file they add is also then displayed. 
  2509.  
  2510.                   Their  current  can-download  bytes  and  minutes  is  also 
  2511.                   displayed,  and shows how much is left based on the current 
  2512.                   files in the download queue. 
  2513.  
  2514.                                                                           -50-
  2515.  
  2516.                   The  size  of  the users download queue  depends  on  their 
  2517.                   screen  size,   and  once the screen is full they  are  not 
  2518.                   allowed to add more files. 
  2519.  
  2520.                   It  does  not do automatic helpful  exchanges  for  minute-
  2521.                   credits  or megabytes (like the menu Download command does) 
  2522.                   when the user tries to exceed one of the download limits. 
  2523.                 
  2524.                 Contents Of DL Queue
  2525.  
  2526.                   This simply lists the contents of the download queue.
  2527.  
  2528.                   If  there are files in it,  the user is asked if  he  would 
  2529.                   like to remove any. 
  2530.  
  2531.                 Download
  2532.  
  2533.                   If  the download queue is not empty,  we first ask them  if 
  2534.                   they would like to download that.   If yes,  we send it  to 
  2535.                   them, then redraw the screen. 
  2536.  
  2537.                   If they do not want the download queue,  or it is empty, we 
  2538.                   ask  them them which file they wish to download.   We  then 
  2539.                   send it immediately. 
  2540.  
  2541.                   When  we  download the queue it is then cleared.   This  is 
  2542.                   done  even  if  the user aborted the  download  inside  the 
  2543.                   transfer protocol. 
  2544.  
  2545.                 Xtra Info
  2546.  
  2547.                   This  will  display  whatever  information  we  have  on  a 
  2548.                   specific  file.   Including:  uploaders name,  date it  was 
  2549.                   uploaded, actual files date,  any attributes (expanded out) 
  2550.                   and  other  stuff  like number of downloads and  date  last 
  2551.                   downloaded. 
  2552.  
  2553. Sysop/File-Op   The  following is a list of the commands only the sysop,   or 
  2554. commands        the File-Op of the area, may type. 
  2555.  
  2556.                 "~" to Remove 1st Line
  2557.  
  2558.                   This is a handy command.  It asks you for a file name, then 
  2559.                   removes   the  first  description  line  from  that   files 
  2560.                   description.    Particularly useful if you allow  users  to 
  2561.                   enter descriptions for files with .DIZ's. 
  2562.  
  2563.                 "!" for File Maintenance
  2564.  
  2565.                   This will edit the header information of the file.
  2566.  
  2567.                                                                           -51-
  2568.  
  2569.                   While  editing,  the fields are "live";  changing the  name 
  2570.                   will  change the file's name,  changing its File Area  will 
  2571.                   move the file, setting the delete Attribute will delete it. 
  2572.  
  2573.                   This command is a bit cumbersome,  and I'll be cleaning  it 
  2574.                   up more in the future. 
  2575.  
  2576.                 "*" to Oust The File
  2577.  
  2578.                   Deletes  the file.   Moves the file name and the first line 
  2579.                   of  the description to ALSO_GOT.LST.   If the file is in  a 
  2580.                   "CD"  area (File Area Attribute 9 ON) then the filename.ext 
  2581.                   is added to your EXCLUDE.LST. 
  2582.  
  2583.                 "@" to Oust The File: Special AKA
  2584.  
  2585.                   This  is  the  same as the Oust above,  but will  create  a 
  2586.                   special ALSO_GOT.LST log line. 
  2587.  
  2588.                   Specifically, it brings up:
  2589.  
  2590.                     FILENAME.EXT    aka for:
  2591.  
  2592.                   and leaves you just after the "for:" to input something, or 
  2593.                   zap the line and make it what you want. 
  2594.  
  2595.                   I  use this "aka"  system for duplicate files.   Files that 
  2596.                   have been uploaded that actually have another name, and for 
  2597.                   older  versions of files.   It helps keep the  ALSO_GOT.LST 
  2598.                   file lets cluttered and lets me know what this file was  an 
  2599.                   AKA  for (I usually just input the file name to which  this 
  2600.                   file was an AKA). 
  2601.  
  2602.                   Example:   CSHOW460.ZIP    aka for: CSHOW462.ZIP
  2603.                              CSHOW.ZIP       aka for: CSHOW462.ZIP
  2604.                              VIEWGIFS.ZIP    aka for: CSHOW462.ZIP
  2605.                              etc.
  2606.  
  2607.                   It  provides  me with confidence when looking at  an  AKA'd 
  2608.                   filename  that  yes,   I  made sure it was a  duplicate  of 
  2609.                   something else before I deleted it.  Versus simply deleting 
  2610.                   it  out of hand (for which I may later come across it again 
  2611.                   on a future CD,  and again have to check it and find it was 
  2612.                   a duplicate, etc.--this saves all that work.) 
  2613.  
  2614.                 ">" to Move File To Area
  2615.  
  2616.                   This command lets you move a file to another File Area.
  2617.  
  2618.                   Since remembering lots of File Area numbers is tricky,  you 
  2619.                   can  do "?"  which will bring up a list of your file areas.  
  2620.                   This  list  may  be paused with [Space]  and  aborted  with 
  2621.  
  2622.                                                                           -52-
  2623.  
  2624.                   [Enter].    It is another thing that needs more work in the 
  2625.                   future. 
  2626.  
  2627.                 See also:  MENU COMMANDS
  2628.  
  2629. Auto-delete     This software's "auto-delete"  capability is curse because it 
  2630. curses          works so damn well! 
  2631.  
  2632.                 Whenever you are in DOS, you can delete files in a File Area, 
  2633.                 or move the file to another File Area, right?  For example, I 
  2634.                 like to exit to DOS to look at the GIF's,  and then toss them 
  2635.                 into the various GIF areas myself. 
  2636.  
  2637.                 Upon return to the BBS,  I simply list the uploads area,  and 
  2638.                 the GIF areas.  When I list the uploads area, it auto-detects 
  2639.                 that those files (GIFs in this case) that I moved/deleted are 
  2640.                 no longer there, and it sets their "deleted" attribute.  Then 
  2641.                 when I list the GIF areas,  it discovers those that I  moved, 
  2642.                 and "undeletes" the entries. 
  2643.  
  2644.                 Its  simply a lot easier to delete files in DOS when  I  need 
  2645.                 more  drive  space,  and let the software auto-fix  the  File 
  2646.                 Areas for me. 
  2647.  
  2648.                 But  the  dark side of this is that the software does not  do 
  2649.                 two  things  when it auto-deletes a file entry:  it does  not 
  2650.                 remove  the  entry  from FILES.IDX (so if  you  type  in  the 
  2651.                 filename.ext it will still "find" it), and it does not record 
  2652.                 an ALSO_GOT.LST log entry. 
  2653.  
  2654.                 We do not do these two things because they take a lot of time 
  2655.                 (particularly with lots of files being moved) and because the 
  2656.                 software really isn't sure that you deleted the file (you may 
  2657.                 have just moved it to another directory,  nullifying its work 
  2658.                 to do the above steps). 
  2659.  
  2660.                 The first thing,  the FILES.IDX entry,  is no biggy.   If you 
  2661.                 pack your file entries this cleans it right out--so its  rare 
  2662.                 a  user will try to download a filename.ext that is no longer 
  2663.                 on-line. 
  2664.  
  2665.                 The  second  is a problem only if you like your  ALSO_GOT.LST 
  2666.                 file  to  be  accurate--and I do--since  users  can  properly 
  2667.                 proclaim   to  have  searched  the  lists,   not  found   the 
  2668.                 filename.ext,  so shouldn't be penalized at all for uploading 
  2669.                 the non-duplicate duplicate.  Although,  in a twist of irony, 
  2670.                 the dupe checker will probably identify it as a duplicate. 
  2671.  
  2672.                 To get around this logging problem,  whenever a file entry is 
  2673.                 auto-deleted,  we wait until we pack the files then we record 
  2674.                 the ALSO_GOT.LST entry. 
  2675.  
  2676.                                                                           -53-
  2677.  
  2678.                 Thus,   if you do somewhat regular packing  operations,   you 
  2679.                 should be able to avoid any troubles.
  2680.  
  2681. Point & Shoot   Unlike the paged system above, the P&S system does not do any 
  2682. File Selection  "correcting" of errors it finds.  It does not list files that 
  2683. and             are <incomplete>  or invisible.    It  does not highlight new 
  2684. Information     files.   It does not display extended descriptions.   It does 
  2685. System          not  do  automatic  helpful  exchanges for minute-credits  or 
  2686.                 megabytes when the user tries to exceed one of the limits. 
  2687.  
  2688.                 The P&S system also only does about 1/2 the commands, and the 
  2689.                 number of files it can display from the File Area is  limited 
  2690.                 to the users screen size. 
  2691.  
  2692.                 Most  of  these deficiences will be worked out  in  the  next 
  2693.                 release. 
  2694.  
  2695.                 But basically what the P&S system offers is a point & shoot 
  2696.                 system where one can tag and untag files easily, get a good 
  2697.                 overall view of a dir, and in general be pretty efficient.
  2698.  
  2699.                 Movement  is simple enough:  either the arrow keys or  number 
  2700.                 keys (keypad with "Num Lock" on). 
  2701.  
  2702.                 To move between file areas use "+"  to move to the next  file 
  2703.                 area, and "-" to move to the previous file area. 
  2704.                 
  2705.                 To download files,  you must first "tag" them.   This is done 
  2706.                 by hitting the [Space],  [Enter], or "5" keys.   Tagged files 
  2707.                 can  be untagged similarly.   As you tag files,  you will  be 
  2708.                 given  a  summary  of  how much and how  long  your  download 
  2709.                 session will be.
  2710.  
  2711.                 Hit "/" to turn on the description line.   This will give you 
  2712.                 the  descriptions  for  each file as you move over  the  file 
  2713.                 names.  Hit "/" again when you want to turn it off.
  2714.  
  2715.                 Hit "?" to just give the description for a single file.  This 
  2716.                 is  much faster than "/".   If "/"  is active and you hit "?" 
  2717.                 than "/" will be turned off also. 
  2718.  
  2719.                 Use "d"   to download the files you have tagged.   Unlike the 
  2720.                 normal download menu option,  this one will not  do automatic 
  2721.                 exchanges  to help you out,  nor does it offer the option  of 
  2722.                 auto-logoff. 
  2723.  
  2724.                 Use "u" to upload.  Auto-detect of Zmodem and BiModem is also 
  2725.                 done.  Unless you do not have access,  or the current area is 
  2726.                 not  set  up as an upload area,  all uploads will go  to  the 
  2727.                 current area.   Otherwise an attempt will be made to put them 
  2728.                 in  file  area  001--if still no access,  then  you  will  be 
  2729.                 rebuffed. 
  2730.  
  2731.                                                                           -54-
  2732.  
  2733.                 "v" will allow you List/View/Test/Extract from that archive.
  2734.  
  2735.                 "q" will quit you out of the P&S system.
  2736.                 
  2737.                 The  software  maintains a global download queue.    The  P&S 
  2738.                 system  interfaces  this  directly.   The  paged  method  has 
  2739.                 commands  to use it.   There are also menu commands that  let 
  2740.                 you access this global download queue from menus. 
  2741.                 
  2742.                                                                           -55-
  2743.                 
  2744. DOWNLOADING     Downloading  (and uploading too)  requires a protocol driver.  
  2745.                 Usually DSZ.EXE (which provides many protocols, including the 
  2746.                 commonly used Zmodem protocol).  This can usually be found on 
  2747.                 any BBS,  or just ask the sysop of any BBS to give you a copy 
  2748.                 if you do not already have one. 
  2749.                 
  2750.                 Users start out with 1 upload byte and 1 download  byte--this 
  2751.                 allows  them  to get to know the  Download  system--otherwise 
  2752.                 they would just get "ratio out of balance,  UL first",  which 
  2753.                 isn't quite as enjoyable for their first call to your BBS. 
  2754.  
  2755.                 The  caller  will  not be able to download if  any  of  their 
  2756.                 ratios are out of balance.   This includes: bytes, files, and 
  2757.                 post/call ratios. 
  2758.  
  2759.                 At  the downloading screen,  callers are only able  to  enter 
  2760.                 file names until they reach the end of the line (4  or 5 file 
  2761.                 names).  To do larger "batch" transfers they should use batch 
  2762.                 downloading  when  listing File Areas.   Wildcard's  are  not 
  2763.                 allowed.  I have plans to expand this. 
  2764.  
  2765.                 Technical note:  Since the wanted-for-download file names and 
  2766.                 paths are  sent to a file,  whatever protocol we use must  be 
  2767.                 able  to  read  in  this file.    The  protocol  must  accept 
  2768.                 "@filename.ext"   at  the end  of  its  command  line  (where 
  2769.                 filename.ext is our list  of file names-currently it is named 
  2770.                 FNAMES.CTL). 
  2771.  
  2772.                 If  the user selects auto-logoff,  and at least one file  was 
  2773.                 not  sent,   then  auto-logoff is ignored  and  the  user  is 
  2774.                 returned to the system.   That is, if auto-logoff is desired, 
  2775.                 then all files must have been successfully transferred before 
  2776.                 it will take effect. 
  2777.  
  2778.                 When  downloading,   either bidirectional  or  regular,   the 
  2779.                 software will,  through exchanges,  try to meet their wishes. 
  2780.                 If they wish to download a file, and do not have enough time, 
  2781.                 but plenty of download bytes,  and exchange is done for them, 
  2782.                 giving  them  enough  time,   with reduced bytes  (if  it  is 
  2783.                 possible)--essentially  saving the user the trouble of  doing 
  2784.                 with Exchange.   Exchanges are not done with regular  "daily" 
  2785.                 minute allotments, but with minute-credits.  This is not done 
  2786.                 with the batch downloading system.
  2787.  
  2788.                 Similarly  for  bidirection.   Except the  exchanges  usually 
  2789.                 occur  after  the transfer.   If the user exceeds their  time 
  2790.                 allotment,  then exchanges are done until they are OK again--
  2791.                 this  can  mean  "borrowing"  against  the  future  (negative 
  2792.                 minute-credits).   Should a user with negative minute credits 
  2793.                 (and  few or no download bytes)  try a bidirectional protocol 
  2794.                 again,   he  will  have it limited to  whatever  his  current 
  2795.                 download  minutes  are.   Should his negative minute  credits 
  2796.  
  2797.                                                                           -56-
  2798.  
  2799.                 exceed his daily minutes allotment,  then he will not be able 
  2800.                 to  use the bidirectional protocols at all--indeed,   he will 
  2801.                 not be able to download either, only upload. 
  2802.  
  2803.                 Abuse:    It is possible to abuse the system by just  logging 
  2804.                 on, using  a  bidirectional  protocol  for   three  hours  of 
  2805.                 downloading,  then logging off and repeating it with  another 
  2806.                 name.   For this reason I urge you to restrict  bidirectional 
  2807.                 protocols  to  users of levels greater than your first  ("new 
  2808.                 user")  level.   With "validated"  user levels,  no abuse  is 
  2809.                 possible  because ratios are always maintained--even if means 
  2810.                 that  the  user had to go into debt.   Any imbalance  "abuse" 
  2811.                 (such  as doing three hours of downloading)  will be  handled 
  2812.                 the  next  time the user tries to download.   The  system  is 
  2813.                 designed  to be flexible,  but a user who tries to abuse  the 
  2814.                 flexibility  will,  sooner or later,  run into a  wall--which 
  2815.                 will require an upload. 
  2816.  
  2817.                 When a user downloads a free file (as denoted with an "f"  in 
  2818.                 the file listings), the time and size are not counted against 
  2819.                 them,  and  do not appear in their stats at all (it is as  if 
  2820.                 they never  did it).   It does,  however,  appear in the  log 
  2821.                 files  (callers  and  summary).   This is true  even  if  the 
  2822.                 download is aborted midway. 
  2823.                 
  2824.                 When  a download is not completed,  bytes are not  subtracted 
  2825.                 from  the  user's  totals--they  are  only  subtracted   when 
  2826.                 downloads have been completed.   While on the surface it  may 
  2827.                 seem  like abuse is possible (download 90%  of the  file  and 
  2828.                 extract the  remaining  parts with "Work  On  Archives"),  in 
  2829.                 reality it is  too  much  work for  a  user  to  consider  it 
  2830.                 worthwhile (they must use PKZIPFIX for ZIP's,  they must take 
  2831.                 time to calculate where to stop,  and if they screw up,  they 
  2832.                 must repeat the whole process).  I think only one user in two 
  2833.                 years of operation ever attempted this--I just manually added 
  2834.                 the bytes to his record, he never did it again.  Uploading is 
  2835.                 much  easier to do,  and the user needs to have the stats  to 
  2836.                 download the whole file in the first place to even  start the 
  2837.                 transfer.    Finally,   the Exchange system allows  users  to 
  2838.                 maximize their file stats for need: time or bytes--which also 
  2839.                 has the effect to eliminate complex download abuse. 
  2840.  
  2841.                 Free downloads using the "FREE" menu commands do not take off 
  2842.                 time,   or  bytes.  Potentially a user could  just do a large 
  2843.                 free download all day to tie up your system.  If this occurs, 
  2844.                 just  make  the  free file download menu option  with  an  SL 
  2845.                 higher than that of new users. 
  2846.                 
  2847.                 Ultimately,   if  you  find a user is trying  to  abuse  your 
  2848.                 system--tying it up,  calling and hanging up,  etc.   Calling 
  2849.                 the  phone company and  complaining about harassment  is  the 
  2850.                 best way--as the phone company has  the calling logs and will 
  2851.  
  2852.                                                                           -57-
  2853.  
  2854.                 be  able  to  see who the caller really is,   and  prove  the 
  2855.                 pattern of abuse. 
  2856.  
  2857.                 Password protected files are handled two ways.  When the file 
  2858.                 name is typed at the downloads-file-name-entry-line they  are 
  2859.                 allowed,   when  the  user completes their entry,   then  the 
  2860.                 question  regarding the password is asked,  and they are only 
  2861.                 allowed to download it if successful.   BiModem does not care 
  2862.                 about  our internal password system,  it has a system of  its 
  2863.                 own with its own password file, you must put in these entries 
  2864.                 manually for BiModem to  protect your password-protect  files 
  2865.                 and your invisible files (since  a  user can find the name of 
  2866.                 an invisible  file   from   the  callers  log--for  long-term 
  2867.                 invisible's,   short  term invisible's have a low  chance  of 
  2868.                 being seen and are not worth the trouble).   This is only for 
  2869.                 on-line files in the File Areas, other files on your disk are 
  2870.                 always protected from downloading. 
  2871.  
  2872.                 Normally,  SL protection is done at the "get file name"  part 
  2873.                 of  the operation(s).   We check DL SL for the File Area  the 
  2874.                 file  is in,  if not enough access,  we pretend it  does  not 
  2875.                 exist.    However,   BiModem  has no method to  stop  a  user 
  2876.                 requesting any  file from any  of  your  "BiModem-accessible" 
  2877.                 defined  areas  (done with BIMODEM.DIR).   Rather,  what  the 
  2878.                 software  relies on to do this is for you to limit access  to 
  2879.                 the  BiModem  protocol  itself to only those  users  who  can 
  2880.                 access all your file areas already. 
  2881.  
  2882.                 Downloading   messages  (with  "Message   Downloader")    and 
  2883.                 downloading  a  Master List  (using the internal Master  List 
  2884.                 downloader)  are  also free  downloads  (no  bytes/time taken 
  2885.                 off).   The  why is obvious:  its faster than if the user did 
  2886.                 the same on-line, and therefore should be encouraged. 
  2887.                 
  2888.                 If  a user has their "all downloads are free"  Attribute  set 
  2889.                 on,   then all files are free and no byte/time information is 
  2890.                 recorded or taken off. 
  2891.  
  2892.                 You  can  set  it  so  each download  gives  the  uploader  a 
  2893.                 "commission"--a percentage of the files value. 
  2894.  
  2895.                                                                           -58-
  2896.  
  2897. UPLOADING       When a user uploads a file, they are given minute-credits and 
  2898.                 byte-credits.   Both of which are exchangeable for the other. 
  2899.                 Minute-credits  allow  more time for downloading,  and  byte-
  2900.                 credits allow more bytes for downloading. 
  2901.  
  2902.                 Minute-credits also allow more time for door games.
  2903.  
  2904.                 You may postpone the giving of these credits until after  you 
  2905.                 validate  the  file if you wish.   Or you can credit  them  a 
  2906.                 little  at a time--it's all in the Settings (and/or  also  in 
  2907.                 the Protocol setup's). 
  2908.  
  2909.                 You   may   only  have  one  file  on-line  with   the   same 
  2910.                 filename.ext.   If the user uploads a file with the same name 
  2911.                 as one that is already on-line, this is known as a duplicate.  
  2912.                 They do not receive credit for uploading duplicates, but they 
  2913.                 will be shown a  note that they should leave you a message to 
  2914.                 get credit.  Then, if the file is original, you should rename 
  2915.                 it,   and  manually give the user their UL bytes and  minute-
  2916.                 credits   for  the  upload.    Whether  your   BBS   renames, 
  2917.                 overwrites,   or rejects duplicates depends on your  protocol 
  2918.                 and  what  protocol parameters you use.   But in its  default 
  2919.                 settings, we give the file a new name, like FILENAME.ZI1. 
  2920.  
  2921.                 Normally,   uploads will be given a "9"  for L&D value,   but 
  2922.                 Targeted  uploads are given only a "2".   If you disable  the 
  2923.                 L&D system then this does not matter. 
  2924.  
  2925.                 Abuse:   the only possible abuse involves logging on  with  a 
  2926.                 phony name,  uploading some duplicate junk,  downloading what 
  2927.                 they  want,   and then next time doing it with another  name.  
  2928.                 This  can  be  avoided by having a  complex  new  user/access 
  2929.                 procedure,   or just requiring uploads to be validated by you 
  2930.                 first. 
  2931.  
  2932.                 If  a user relies on auto-detect ("just does it")  for  their 
  2933.                 upload  (for instance,  at an ANSI menu),  then we will first 
  2934.                 try  to  put that upload into the current file area.   If  no 
  2935.                 access,   we try area 001.   If the user does not have upload 
  2936.                 access to area 001, after not being able to put the upload in 
  2937.                 the  current  area,  the upload will not be allowed  to  take 
  2938.                 place. 
  2939.                 
  2940.                 After  a upload is done,  there are a variety of  post-upload 
  2941.                 processing  that can be done.   Including:  insertion of  BBS 
  2942.                 comments  into .ZIP and .ARJ files,  extraction to a file  of 
  2943.                 .ZIP  comments,   extraction  of .DIZ  descriptions  to  your 
  2944.                 reviews  files,   and running of a  virus  checking  program.  
  2945.                 These are registered features, however. 
  2946.                 
  2947.                 See also: SETTINGS, TOGGLES, Protocols, Executable Lines
  2948.  
  2949.                                                                           -59-
  2950.  
  2951. Searching       When a user selects a non-bidirectional protocol,  they  will 
  2952.                 be  asked to enter a search string and a "search the off-line 
  2953.                 lists" will be done.  It is the user's responsibility to make 
  2954.                 sure the software they wish to upload  is not in your  lists.  
  2955.                 You  may toggle this requirement (that they search before all 
  2956.                 uploads) ON/OFF. 
  2957.  
  2958.                 When searching the off-line lists, a text search is done--not 
  2959.                 a  file  name  search.   When a user enters a  string  to  be 
  2960.                 searched  for,  some processing is done:  see "Search  string 
  2961.                 chopper"   section.   These choppings will be shown  as  they 
  2962.                 occur--slowed down so the user can see it. 
  2963.                 
  2964.                 If  uploading (not when doing the menu command to search  the 
  2965.                 lists),  if they  hit [Enter]  before  a search is completed, 
  2966.                 then it is assumed they do not want to upload, and are exited 
  2967.                 back to the menu.   They need only one completed search  in a 
  2968.                 series of searches to move on to the next step and upload the 
  2969.                 program.    This prevents someone from searching part of  the 
  2970.                 search  file,  but not all of it.   Needed,  because the file 
  2971.                 they wish to upload may be in that part of  the list they did 
  2972.                 not see.  If they know the file is not in your list, they can 
  2973.                 just  enter  a "scramble string"  to do  the  fastest  search 
  2974.                 (example: AJKLK). 
  2975.  
  2976.                 The  File  Area Attribute for "don't include in Master  List" 
  2977.                 also  affects the searching of lists when it searches on-line 
  2978.                 lists (since  it uses MASTER.LST)--so you should add the text 
  2979.                 file  of your un-master-listed areas to the  search  off-line 
  2980.                 list  database  as well.   Usually,  however,  you only  turn 
  2981.                 "don't include in Master List"  off for transient areas (such 
  2982.                 as CD's you swap in and out each week, etc.) 
  2983.  
  2984. File            Minute-credits will not be  given  until  the  user  enters a 
  2985. Descriptions    description  for their upload.   This may done later via  the 
  2986.                 Add  File  Review  command.    Using  the  file  name  as   a 
  2987.                 description  is ignored.    Holding back of minute-credits is 
  2988.                 the  punishment  for  users not  using  descriptions.    This 
  2989.                 software is designed to reduce your workload.   If a file has 
  2990.                 a  FILE_ID.DIZ  description  file,   this  is  considered  an 
  2991.                 acceptable description and they are given credit. 
  2992.                 
  2993.                 Users who  have  a  SL greater than  the  lowest  SL you have 
  2994.                 created,   may use "/"  or "\"  as the first character of the 
  2995.                 description to make it a "sysop-only"  file.   This makes the 
  2996.                 file invisible--only the sysop or File-Op will be able to see 
  2997.                 it. 
  2998.  
  2999.                 Once  a valid description is given.   The software will check 
  3000.                 to see if the file is a ".GIF"  or ".JPG"  image.   If it is, 
  3001.                 then the dimensions are  entered into the description.  Files 
  3002.                 which have a ".GIF"  extension  but  are  not really GIFs are 
  3003.                 handled properly. 
  3004.  
  3005.                                                                           -60-
  3006.  
  3007.                 If  censoring is turned on,  then only the File-Op of a  file 
  3008.                 area may enter uncensored descriptions. 
  3009.  
  3010.                 One  problem  that  seems  to  confound  users  is  uploading 
  3011.                 multiple   files   (batch  upload)    that   have   different 
  3012.                 descriptions.  Since if they enter the description first, all 
  3013.                 files  are  given that description.   To make life easier  on 
  3014.                 them,   you might want to add the text "you will be given the 
  3015.                 chance  to enter individual descriptions after the upload  is 
  3016.                 completed." 
  3017.  
  3018.                 See also:  KEYS.HLP
  3019.  
  3020.                                                                           -61-
  3021.                 
  3022. REMOVING FILES  There are 3 ways to remove files:   deleting  them  by  hand, 
  3023.                 deleting them with the "oust files"  routines,  and  deleting 
  3024.                 them by using L&D delete.  The software never deletes on-line 
  3025.                 files without a human to confirm it. 
  3026.  
  3027.                 Deleting by hand simply involves using DOS's  DEL command. It 
  3028.                 is  what you probably do to delete files on your hard disk or 
  3029.                 floppies that you no longer want.   When doing  this to files 
  3030.                 in your downloads areas,  you should do it before starting up 
  3031.                 the BBS.   If you do delete a file while the  BBS is  running 
  3032.                 (by shelling to DOS or through a door)  then the BBS will not 
  3033.                 know that you deleted it--some routines will still allow that 
  3034.                 file name to be typed,  displaying a  "file not found",   and 
  3035.                 probably  confusing your users.   The  software  (eventually) 
  3036.                 self-correct  itself  when  it finds the file  missing  (when 
  3037.                 listing File Areas). 
  3038.  
  3039.                 The  second method,  "ousting files"  via the two sysop  menu 
  3040.                 commands:   Oust Files and Oust Files/Penalty,  or by setting 
  3041.                 the  "1"   attribute with File Maintenance,  will delete  the 
  3042.                 file. 
  3043.                 
  3044.                 The  difference between Oust Files and Oust Files/Penalty  is 
  3045.                 that  Oust  Files repeatedly loops asking you  for  files  to 
  3046.                 simply delete.   Oust Files/Penalty asks you for a file name, 
  3047.                 finds  out  who uploaded it,  then asks you for a reason  why 
  3048.                 you are deleting it (corrupt,  or a duplicate,  whatever),  a 
  3049.                 message containing your reason and other information is  sent 
  3050.                 by  the  AI  to the user,  and finally  the  file  itself  is 
  3051.                 deleted.   The  text of the AI's message can be  found,   and 
  3052.                 edited, in LINES.TXT. 
  3053.  
  3054.                 The  third method is using the Life & Death system.   When  a 
  3055.                 file's  L&D  count  is  at  zero ("?"),   and  a  variety  of 
  3056.                 conditions  are  met (see L&D menu command)  then a user  may 
  3057.                 choose to "reduce" the L&D value further--delete it. 
  3058.  
  3059.                 With any of these methods,  the deleted file name, size,  and 
  3060.                 description,   are  written  out  to the  log  file  and  the 
  3061.                 ALSO_GOT.LST file. 
  3062.                 
  3063.                 If  you  use  DOS's DEL  command,   then  the  software  will 
  3064.                 recognize the files as missing and consider them deleted.  If 
  3065.                 you should accidentally delete a file,  and then  put it back 
  3066.                 into   any  download  directory,   then  the  software   will 
  3067.                 automatically undelete the file entry for you.  If you should 
  3068.                 only  change  the  extension of a file,   the  software  will 
  3069.                 properly handle that as well. 
  3070.  
  3071.                 None  of  the above are as complex as they sound.    I   just 
  3072.                 described  in detail what happens.   Everything is automatic. 
  3073.                 When  you  use DEL you just type a file name.   When you  use 
  3074.  
  3075.                                                                           -62-
  3076.  
  3077.                 Oust  Files,  you just type a file name.   When you use  Oust 
  3078.                 Files/Penalty, you just type a file name and a reason (I like 
  3079.                 to keep mine to one word).  With L&D delete you just type the 
  3080.                 file name and a Yes/No confirmation. 
  3081.  
  3082.                 When using the "Oust Files"  command,  you are able to  enter 
  3083.                 wildcards.    When  the software detects wildcards,  it  does 
  3084.                 something  slightly different:  it sequentially goes  through 
  3085.                 all  the  file records  deleting all entries that  match  the 
  3086.                 wildcard.  The purpose of this is to also provide the sysop a 
  3087.                 means  of eliminating  duplicate  filenames  (which  are  not 
  3088.                 allowed,   and  do  cause  troubles).    Otherwise,   without 
  3089.                 wildcards,   the  software merely deletes the first entry  it 
  3090.                 finds that matches that name.  Such as for removing FILES.BBS 
  3091.                 after  installing a CD with this file in each dir (you  would 
  3092.                 do an Oust Files with FILES.BB* as the file to delete). 
  3093.  
  3094.                                                                           -63-
  3095.  
  3096. MISC.           When you get a percentage progress  report:   ▓▓▓█████  (30%) 
  3097.                 Do not worry if it ends at less than 100%,  it may end at 95% 
  3098.                 if the numbers are "just so"  and it may end up much lower if 
  3099.                 there are not that many things to do. 
  3100.  
  3101.                 If  one  gets "No messages found."  when reading logon mail--
  3102.                 after having  been  promised  mail  ("You  have mail  in  the 
  3103.                 following  areas..."),  then this is not a problem.    It  is 
  3104.                 possible the sender  of  the message sent it,  but deleted it 
  3105.                 later (before you called) or the system deleted it because it 
  3106.                 was  too  old (if the Message Area maximum-messages  circular 
  3107.                 buffer is in effect)  and you had not called in a long while.  
  3108.                 But  it usually occurs after you have already read your mail, 
  3109.                 and then went on to somehow crash the BBS or used the  <alt>x 
  3110.                 command. 
  3111.  
  3112.                 The  RESULTS  file will still contain my BBS's voting  totals 
  3113.                 and system statistics.   Just run "update system stats"  from 
  3114.                 the sysop menu to eliminate it all. 
  3115.  
  3116.                 The BiModem configuration files were included to aid in setup 
  3117.                 of BiModem.   You still need to go through and make sure  the 
  3118.                 path's and modem type are correct with BICONFIG.COM.
  3119.  
  3120.                 In  File  Maintenance,  even though the password field for  a 
  3121.                 file  is  a number,  the data entered must be a string.    To 
  3122.                 change a password,   merely enter the password you wish.   To 
  3123.                 clear a password, merely enter a single space. 
  3124.  
  3125.                                                                           -64-
  3126.  
  3127. I AM LOST!?!    If you have gotten to this point,  and you have not tried the 
  3128.                 software yet, you are probably really confused. 
  3129.  
  3130.                 I have given you the architect's designs of the building, but 
  3131.                 all you want is the front door, elevator,  and location of an 
  3132.                 office. 
  3133.  
  3134.                 Run  the  program,  see what happens,  how  it  works,   etc. 
  3135.                 However,  be aware that a lot does not show up until it is in 
  3136.                 full operation. 
  3137.  
  3138.                 In this  initial configuration,  it is a scaffolding--it  may 
  3139.                 even appear simplistic.
  3140.                 
  3141.                 Do  not  think about what it is,  or what it can  be.    Take 
  3142.                 change a  little at a time.   Look over the stuff you  do not 
  3143.                 know only when you want, or need, to know it. 
  3144.  
  3145.                 This is not a "BBS construction set"--although it can be.
  3146.  
  3147.                 You do not need to be a programmer--although you can be.
  3148.  
  3149.                 YOU decide how "deep"  to get into this software.   Laugh off 
  3150.                 all the  confusing stuff--it can be ignored,  but  it will be 
  3151.                 there when you need it. 
  3152.  
  3153.                                                                           -65-
  3154.  
  3155. CUSTOMIZING     You probably have an urge to jump in and start  changing  the 
  3156. 101             menu ANSIs and the menu commands. 
  3157.  
  3158.                 Do not.
  3159.  
  3160.                 Your   first  step  should  be  to  customize  the   internal 
  3161.                 structures  of  the BBS.   This means using  the  sysop  menu 
  3162.                 commands:   Change Settings,  Alter Pathnames,  Toggles,  and 
  3163.                 other configuration commands. 
  3164.  
  3165.                 Indeed,  Toggles  should  be your first  stop--as  it is  the 
  3166.                 easiest.  Then Change Settings.   These modify the limits  of 
  3167.                 your BBS. 
  3168.  
  3169.                 Believe me,  I  know it is complex,  I  must urge you to take 
  3170.                 very small steps in your change-over of the software.  Do not 
  3171.                 read more into what you see, follow the examples, if I do not 
  3172.                 say it cannot work--then you can probably do it. 
  3173.  
  3174.                 See also: SECURITY LEVELS, FILE AREAS, MESSAGE AREAS,
  3175.                           CONVERSION
  3176.  
  3177.                                                                           -66-
  3178.  
  3179. TOGGLES         From the sysop or Waiting-for-caller menus you can bring up a 
  3180.                 menu of Toggles to change. 
  3181.  
  3182.                 Each option breaks down into a screen of Toggles.
  3183.  
  3184.                 The docs for the toggles have been put on-line as part of the 
  3185.                 Toggle system. 
  3186.  
  3187.                 Turning off the AI toggles really does make the software much 
  3188.                 more simplistic (dumber).   The AI  actions  were designed to 
  3189.                 continue  the  work the users would otherwise have to  do  on 
  3190.                 their own. 
  3191.  
  3192.                                                                           -67-
  3193.  
  3194. SETTINGS        From the sysop or waiting-for-caller menus you can bring up a 
  3195.                 menu of Settings to change. 
  3196.  
  3197.                 Each option breaks down into a screen of Settings.
  3198.  
  3199.                 The  docs  for the settings have been put on-line as part  of 
  3200.                 the Settings system. 
  3201.  
  3202.                 Changes take effect/are saved when you exit the main settings 
  3203.                 menu. 
  3204.  
  3205.                                                                           -68-
  3206.  
  3207. PATHNAMES       Selecting "Alter Pathnames"  from the sysop menu brings up  a 
  3208.                 menu of the pathnames the software uses internally. 
  3209.  
  3210.                 Each option breaks down into a screen of pathnames.
  3211.  
  3212.                 The  docs for the pathnames have been put on-line as part  of 
  3213.                 the pathname system. 
  3214.  
  3215.                 This  is  really only for experienced users who  need/want  a 
  3216.                 little   something  special  in  the  way  their  files   are 
  3217.                 organized.   Such as having them spread across a network.  Or 
  3218.                 to better optimize multi-node operations. 
  3219.  
  3220.                 Be  sure the pathnames you give are correct--as the  software 
  3221.                 does  not complain when it cannot find a pathname.   And  the 
  3222.                 errors you get may be subtle.   But most sysop's do not  have 
  3223.                 to change these pathnames. 
  3224.                 
  3225.                 "???" expands to 3 letter node numbers (001 to 999).
  3226.  
  3227.                 "***\&"  expands  to Style\Language  codes--used  to separate 
  3228.                 files by their Style and Language.
  3229.  
  3230.                 The  pathnames displayed  on  your screen will always be  the 
  3231.                 "post-processed" pathnames.  AFTER they had their "???"'s and 
  3232.                 "***\&"  changed.   But when you change it,  feel free to use 
  3233.                 "???"'s or "***\&"'s if you want--they  too  will show  up as 
  3234.                 post-processed  equivalents.   In other words,  where I  have 
  3235.                 "c:\bbs\node.???\"   you  will  see "c:\bbs\node.001\"   even 
  3236.                 though it is really stored  as "c:\bbs\node.???\".   When you 
  3237.                 actually edit it, then you will see the real thing. 
  3238.  
  3239.                                                                           -69-
  3240.  
  3241. MENU COMMANDS   From  the sysop menu,  or with <ctrl>F2  from most  anywhere,  
  3242.                 you can access McEditor.   The Menu Command Editor.   More is 
  3243.                 explained on this later. 
  3244.  
  3245.                 Menu  Commands are 4 letter commands (eg.  "PagF"--case  does 
  3246.                 matter). 
  3247.  
  3248.                 The  docs for these commands are on-line inside McEditor with 
  3249.                 the  "H"  command,  or from most anywhere with  the  <ctrl>F3 
  3250.                 command. 
  3251.  
  3252.                 <ctrl>F2  and <ctrl>F3  also work from the waiting-for-caller 
  3253.                 screen. 
  3254.  
  3255.                                                                           -70-
  3256.                 
  3257. ANSI'S          TheDraw  adds  blank lines to "fill out the screen"  when  it 
  3258.                 saves  ANSIs.    You should use a text editor and edit  these 
  3259.                 files to get rid of those blank lines. 
  3260.  
  3261.                 TheDraw  might also declare some ANSIs "animations"  when  it 
  3262.                 loads them.  Ignore that.  You always want to save your ANSIs 
  3263.                 as:  Ansi,  Clear screen, No max line length,  fastest output 
  3264.                 speed. 
  3265.                 
  3266.                 You should not use the "«", or "±",  in any ANSI's before you 
  3267.                 get the callers name (all ANSI's before your "LogN" command).  
  3268.                 These characters are used  to tell the other computer when to 
  3269.                 receive  net  mail--it  may  trigger  a  premature  net  mail 
  3270.                 transfer  before your BBS had planned.   That is,  if another 
  3271.                 BBS  calls your BBS looking for net mail,  it is looking  for 
  3272.                 these characters--since the BBS sends out these characters to 
  3273.                 tell  the calling computer to begin a net mail receive.    If 
  3274.                 they appear in your ANSI's,  it causes trouble.   Once a user 
  3275.                 logs  in,   then  you can use the character in  any  of  your 
  3276.                 ANSI's. 
  3277.  
  3278.                 Auto-detect of Zmodem or BiModem is done at all menu ANSI's. 
  3279.                 
  3280.                 For menu ANSI's, the who's-on status line is displayed on the 
  3281.                 next line following the ANSI--so it is  not  recommended  you 
  3282.                 have  menu ANSI's that exceed 23  or so lines.   Also because 
  3283.                 many   communication  programs  use  two  lines  to   display 
  3284.                 information  as  well.   But if you do want to use  the  full 
  3285.                 screen,   just add a little jump code to jump up to a  higher 
  3286.                 line where it can display the sysop line. 
  3287.  
  3288.                 If at a menu, and the user has called less than 4 times, then 
  3289.                 if  they  hit  [Enter] three times in a row,  we bring  up  a 
  3290.                 little helpful reminder that they should check that they have 
  3291.                 wrap-around set properly.  Even if your menu ANSIs do not use 
  3292.                 wrap-around  (ie,   an ANSI that is one long line uses  wrap-
  3293.                 around),  this is a useful little thing to tell the user that 
  3294.                 he's acting odd.  Typically this appears if new users like to 
  3295.                 hold down the [Enter] key after logging in. 
  3296.  
  3297.                 See  the  "AnsQ",   "ShwQ",  and "EANS"   menu  commands  for 
  3298.                 information on ANSI InfoForms and Editable-ANSIs. 
  3299.  
  3300.                 See also:  ANSI.HLP
  3301.  
  3302.                                                                           -71-
  3303.  
  3304. CONVERSION      Some advice on converting from another BBS program:
  3305.                 
  3306.                 Use   the   Import  Descriptions  command  to  convert   file 
  3307.                 descriptions. 
  3308.  
  3309.                 ANSIs should not be any problems,  although you will have  to 
  3310.                 match  your  menu commands with my functions.   It is best to 
  3311.                 phase  this in one or two commands at a time.   I  have a lot 
  3312.                 more commands than any other BBS program, so you will have to 
  3313.                 do  some  extra  work to put those additional  commands  onto 
  3314.                 menus (although ignoring them will make things easier). 
  3315.  
  3316.                 If you are currently using RemoteAccess, Renegade, FeatherNet
  3317.                 or  SpitFire,   then you can convert your users and  messages 
  3318.                 files  with  CONVERT.EXE.   If you are using something  else, 
  3319.                 then use this program  as  an example,  and modify it to suit 
  3320.                 your current BBS's data structures.   The Convert program  is 
  3321.                 entirely self-contained in standard DOS Basic.   If you  need 
  3322.                 help, just ask me, chances are I will do it for you.   If you 
  3323.                 make changes,  send me them so that others may benefit.   The 
  3324.                 convert  program  has not undergone a lot of  testing--if  it 
  3325.                 does not work, tell me and I will give you a fixed version. 
  3326.                 
  3327.                 Telegard/Renegade  and  RemoteAccess seem to have a  lot  BBS 
  3328.                 programs  that  use the same format (are rip-off's  of  these 
  3329.                 rip-off's),   they  may  be convertible as well.    For  some 
  3330.                 others,  it might be useful to use an intermediary conversion 
  3331.                 step (for example, WWIV to RA to JDR_BBS). 
  3332.  
  3333.                                                                           -72-
  3334.  
  3335. MODEM SETUP     You must have a fossil driver installed.  Such as X00 or BNU.  
  3336.                 
  3337.                 The command line for X00 for most people is just: 
  3338.                 
  3339.                      device = x00.sys e
  3340.                 
  3341.                 Your modem should be configured as such:
  3342.  
  3343.                     Modem echos data (usually E1).
  3344.                     Modem sound off (usually M0).
  3345.                     Result codes displayed (usually Q0).
  3346.                     Full result codes (usually X4).
  3347.                     Verbal result codes (usually V1).
  3348.                     Auto-answer off (usually S0=0).
  3349.                     DTR follows connection (usually &D2).
  3350.                     Carrier-Detect (CD/DCD) follows connection (usually &C1).
  3351.                     DSR is properly maintained (usually &S1).
  3352.                 
  3353.                 So, usually ATE1M0Q0X4V1S0=0&C1&D2&S1 will do it. 
  3354.                 
  3355.                 For your fossil speed,  you should try either 19200  or 38400 
  3356.                 and  see which works best for you/your system.   There is  no 
  3357.                 "57600"   speed for the fossil,  but the modem makers like to 
  3358.                 push this number to show how fast their modems really aren't.  
  3359.                 Your best value will depend on how fast your computer is, and 
  3360.                 whether  you've  got multi-tasking or not,  and  possibly how 
  3361.                 noisy (electronic noise) your whole computer set up is. 
  3362.  
  3363.                 As released,  the software begins with defaults of 19200  for 
  3364.                 the  baud,  and ATZ for the initialization string.   You  can 
  3365.                 change these easily at the command line (JDRBBS.EXE /?). 
  3366.  
  3367.                 For  some commands,  the computer goes into an infinite  loop 
  3368.                 (locks up)  when you specify a port for which you do not have 
  3369.                 a modem.   Also,  it may lock up if  you  have configured the 
  3370.                 fossil wrong (particularly  if you specified a baud rate your 
  3371.                 modem cannot handle,  since all your modem see's is gibberish 
  3372.                 when the fossil try's to talk to it). 
  3373.  
  3374.                 The following is a checklist for setting up your modem:
  3375.                 
  3376.                   1. Do the X00 (or other fossil) command set up.
  3377.                   2. Put in your correct initialization string.
  3378.                   3. Change the communications port to that of your modem  in 
  3379.                      Settings. 
  3380.  
  3381.                 For  dialing,   I  assume ATDT,  but you can change  this  in 
  3382.                 SHORT.TXT.  Search for "dt" and "dt1-".
  3383.  
  3384.                 The  modem  will show you what it is  sending  and  receiving 
  3385.                 while  trying  to initialize the modem (and when  dialing  or 
  3386.                 receiving  a call).   If it fails to initialize,  then it  is 
  3387.  
  3388.                                                                           -73-
  3389.  
  3390.                 usually  due  to  you  setting up the fossil  or  your  modem 
  3391.                 initialization string wrong. 
  3392.  
  3393.                 See also: LINES.TXT, APPENDIX J, SETTINGS, CONFIG, Q&A.DOC
  3394.  
  3395. Example         Scenario:   you've  just gotten a brand new  Viva  14.4K/Fax.  
  3396.                 It's  not  configured  for  a  BBS--it's  not  even  properly 
  3397.                 configured for calling BBS's. 
  3398.  
  3399.                 The modem initialization string looks like so:
  3400.  
  3401.                    AT&FM0W2&C1&D2&S1%C2S95=2
  3402.  
  3403.                 It expands to:
  3404.  
  3405.                    AT&F M0 W2 &C1 &D2 &S1 %C2 S95=2
  3406.  
  3407.                 First,  some background.  When you get a modern modem,  it is 
  3408.                 configured with "MNP5" compression ON.  You don't want it on-
  3409.                 -ZIP's don't compress any farther,  and all it does is reduce 
  3410.                 speed  (example:  282cps at 2400  w/o compression,  240cps at 
  3411.                 2400 with compression ON). 
  3412.  
  3413.                 Also,   this example modem is  setup  so  that when you  make 
  3414.                 contact you get multiple lines: 
  3415.  
  3416.                    CARRIER: xxxxxx      (eg. CARRIER: 14400)
  3417.                    PROTOCOL: xxxx       (eg. PROTOCOL: LAPM)
  3418.                    COMPRESSION: xxxx    (eg. COMPRESSION: V.42BIS)
  3419.                    CONNECT: xxxxx       (eg. CONNECT: 19200)
  3420.  
  3421.                 The CONNECT is the speed at which we told the fossil to  talk 
  3422.                 to the modem.  The CARRIER is the speed at which we connected 
  3423.                 with  the other modem.   The PROTOCOL is the type of exchange 
  3424.                 beyond mere baud rate we do (eg. MNP5). 
  3425.  
  3426.                 And it's all wrong.  We want CONNECT to contain both the baud 
  3427.                 we  connected with the other computer at,  and  the  protocol 
  3428.                 used.    Usually  this  takes the form "CONNECT  14400"   and 
  3429.                 "CONNECT 14400/ARQ"  where the "/ARQ"  is used to signify the 
  3430.                 faster MNP connection.  This "/ARQ"  is useful in the CONNECT 
  3431.                 strings   database  for  getting  download-time   estimations 
  3432.                 correct. 
  3433.  
  3434.                 Back to our string:
  3435.  
  3436.                    AT&F M0 W2 &C1 &D2 &S1 %C2 S95=2
  3437.  
  3438.                    &F    tells the modem to start fresh with the factory
  3439.                          defaults.
  3440.                    M0    tells the modem to keep its speaker quiet.
  3441.  
  3442.                                                                           -74-
  3443.  
  3444.                    W2    tells the modem to display "CONNECT <baud>" and
  3445.                          none of that other stuff.
  3446.                    &C1   tells the modem to tell us about the carrier's
  3447.                          status (DCD).
  3448.                    &D2   allows us to use DTR on->off to hangup the phone.
  3449.                    &S1   tells the modem to properly show us DSR status at
  3450.                          the WFC screen.
  3451.                    %C2   tells the modem to not do MNP5 compression.
  3452.                          Keeping v42bis compression is OK however, it's just 
  3453.                          MNP5 compression that's bad.
  3454.                          This changes from modem to modem, see MODEM.HLP.
  3455.                    S95=2 tells the modem to add the "/ARQ" to the CONNECT
  3456.                          strings if we have an MNP/etc. connection.
  3457.                          This changes from modem to modem, see MODEM.HLP.
  3458.  
  3459.                 The above can be used as a modem initialization string, but
  3460.                 it's easier to do the following:
  3461.                 
  3462.                    ATM0W2&C1&D2&S1%C2S95=2&W
  3463.                 
  3464.                 and then use ATZ as the initialization string.
  3465.                 
  3466.                 This  example setup string will probably work for most  14.4k 
  3467.                 modems. 
  3468.  
  3469.                 Learning to use the &W command (then using ATZ)  is a must if 
  3470.                 your  modem  initialization string is too long to fit in  the 
  3471.                 configuration field.   If this is the case,  also check  your 
  3472.                 modem  manual,   many of the above commands are  already  the 
  3473.                 default. 
  3474.  
  3475. CONNECTs DB     When your modem returns "CONNECT <something>"  we rely on our 
  3476.                 CONNECT strings database to tell us what <something>  is (and 
  3477.                 what  it  is  to be displayed as).    You  can  change  these 
  3478.                 entries,  but they should satisfy most modems.  See the sysop 
  3479.                 menu for access to this database. 
  3480.  
  3481.                 The  CONNECT  strings database is divided into three  fields: 
  3482.                 The  actual  CONNECT  strings as the modem sends  them,   the 
  3483.                 maximum  CPS rate  that that  connection yields,  and what to 
  3484.                 show  for  that  connection (for Last Few  Callers  and  when 
  3485.                 downloading). 
  3486.  
  3487.                 When a call comes into the software,  the database is scanned 
  3488.                 for a string that matches what the modem sends.   If none  is 
  3489.                 found,  then the phone is hung up, and a "non-user"  log note 
  3490.                 is made. 
  3491.  
  3492.                 When  putting data in the "show user"  fields of the  CONNECT 
  3493.                 Strings database,  you should endeaver to make the entry such 
  3494.                 that  the first thing in the field is the actual  baud  rate.  
  3495.                 Example:  "14400 ARQ" is OK, but "ARQ at 14400" is not.   The 
  3496.  
  3497.                                                                           -75-
  3498.  
  3499.                 reason  is  that doors and some other functions use the  baud 
  3500.                 rate, and expects it to be first. 
  3501.   
  3502. Throughput      When  displaying text/ANSIs we first blast the output to  the 
  3503.                 screen,   and  then  to the modem.    This  provides  maximum 
  3504.                 throughput and gives the modem the best compression options. 
  3505.  
  3506.                 But  what this means is that an ANSI could take a few seconds 
  3507.                 to display on the users end while you're looking at it on the 
  3508.                 console (if they have a 2400 baud modem for example). 
  3509.  
  3510.                 Modems themselves have small buffers.   But you might be able 
  3511.                 to increase throughput farther by specifying a fossil  buffer 
  3512.                 as well:  device = x00.sys t=2048 e 
  3513.                           for example would specify a 2k output buffer.
  3514.  
  3515.                 File throughput is handled by your protocol drivers, and they 
  3516.                 can vary widely. 
  3517.  
  3518.                                                                           -76-
  3519.                 
  3520. TERMINAL        This is invoked from the Waiting-For-Caller screen  by  using 
  3521. PROGRAM         the <alt>d command.  A  terminal program is a program used to 
  3522.                 call  out  to other BBS's.   The word "terminal"  comes  from 
  3523.                 "terminal emulator" because that's what you're doing when you 
  3524.                 call another BBS: emulating a terminal (in this case, a VT100 
  3525.                 or VT102). 
  3526.                 
  3527.                 From there you are presented with a screen.  It has a command 
  3528.                 line,   and if you just type something and hit  [Enter]  that 
  3529.                 something will be sent to the modem. 
  3530.  
  3531.                 On  the other hand,  if you use the arrow keys you will  move 
  3532.                 into  the dialer part of the screen and be able to  edit  and 
  3533.                 dial phone numbers. 
  3534.  
  3535.                 Type "?" for some on-line help.
  3536.  
  3537.                 Hit <esc>  to exit <alt>d and return back to the Waiting-For-
  3538.                 Caller screen. 
  3539.  
  3540. Dialer          The  dialer  system  works a  little  different  from  normal 
  3541.                 dialers.  Instead of scrolling through one long list, you are 
  3542.                 limited to the 21 lines you see.   But what the software does 
  3543.                 is  let you add more entries by "depth".   That is,  when you 
  3544.                 hit  <ins>   to  edit an entry you can either create  just  a 
  3545.                 normal dialing entry, or you can create a topic entry. 
  3546.  
  3547.                 A  topic  entry is a link to another screen with  21   slots.  
  3548.                 There is no limit to how "deep" you can make entries. 
  3549.  
  3550.                 This  system allows you to keep your most used numbers on the 
  3551.                 first screen, and put less-used (but organized)  entries onto 
  3552.                 the other screens. 
  3553.  
  3554.                 The  phone number field is to be exactly as you want to  send 
  3555.                 it to the modem.   For example, 1-414-643-1576.  However, you 
  3556.                 can optionally specify a "+" after the phone number (eg. 643-
  3557.                 1576+).   This "+" tells the software to go into 50 line mode 
  3558.                 when you call that number. 
  3559.  
  3560. Command Line    It is a simple "do what" question.   You may either choose to 
  3561.                 send a command to the modem directly, or use the "d"  and "n" 
  3562.                 commands. 
  3563.  
  3564.                 "dt xxx-yyy-zzzz" would be to call another computer. 
  3565.                 
  3566.                 "d xxxx"  will search your Dialer entries for one  containing 
  3567.                 the string "xxxx".   It will then dial that number.   If more 
  3568.                 than one is found, it will ask you which one to use. 
  3569.  
  3570.                                                                           -77-
  3571.  
  3572.                 "n  xxxx"   works  like "d xxxx",  but the "xxxx"  is  a  net 
  3573.                 address, and the software checks its nodelists and retrieves, 
  3574.                 then dials, the phone number for that address. 
  3575.  
  3576.                 Note:   if  another BBS wants to put  you  through  call-back 
  3577.                 verification.   You should do an <alt>p just before they call 
  3578.                 you  back.    This will let you handle the RING,  ATA,   etc. 
  3579.                 without having the incoming call confused as a caller to your 
  3580.                 BBS. 
  3581.  
  3582. Misc.           The internal terminal program included has a lot of features 
  3583.                 found in the better stand-alone terminal programs:
  3584.  
  3585.                 IEMSI support
  3586.  
  3587.                   This is a type of auto-login which is handled automatically 
  3588.                   between the BBS and the terminal program. 
  3589.  
  3590.                   You  first  define  for yourself up to  3  different  IEMSI 
  3591.                   identities with F5.   Then for each dialer entry,  you tell 
  3592.                   it  which one of the 3 are to be your IEMSI identity.    If 
  3593.                   the  BBS supports it,  you save some keystrokes  and  login 
  3594.                   faster.  If not, nothing happens. 
  3595.  
  3596.                   Note: your password in the dialer entry must be the same as 
  3597.                   the BBS expects for IEMSI to work. 
  3598.  
  3599.                 Arrow key support
  3600.  
  3601.                   The  software will properly send the arrow key  codes  when 
  3602.                   you hit the arrow keys. 
  3603.  
  3604.                   Please  note:   this does not extend to <pgup>  and  <pgdn> 
  3605.                   support--which  we  use  for  Uploading  and   Downloading, 
  3606.                   respectively. 
  3607.  
  3608.                   <home>   and <del>  will send a <pgup>  and  <pgdn>   code, 
  3609.                   respectively.  But this is not widely supported. 
  3610.  
  3611.                 50 line mode
  3612.  
  3613.                   You can choose to switch to 50 line video mode.  You can 
  3614.                   do this after you are already connected as well.
  3615.  
  3616.                 Direct screen writing handles Internet ANSI codes
  3617.  
  3618.                   If the called Internet computer doesn't recognize you, just 
  3619.                   type in "vt102" for your terminal type.  We do some special 
  3620.                   handling of the ANSI codes it will send to provide a proper 
  3621.                   Internet display. 
  3622.  
  3623.                                                                           -78-
  3624.  
  3625.                 Smart buffer purging
  3626.  
  3627.                   When  you hit a key,  and there are a lot of characters  in 
  3628.                   the incoming buffer,  we zap that buffer.   No more waiting 
  3629.                   for the contents of the buffer to display before seeing the 
  3630.                   effects of your keystoke. 
  3631.  
  3632.                 GIP VGA graphics
  3633.  
  3634.                   Like  the  BBS  itself,  when you  call  another  BBS  that 
  3635.                   supports  the  GIP  graphics protocol,   you  can  get  VGA 
  3636.                   screens,  etc.   As of this writing,  only other Juggernaut 
  3637.                   BBS's support this public domain graphics standard. 
  3638.  
  3639.                 RING detection
  3640.  
  3641.                   When  at  the command line,  and the phone rings,  it  will 
  3642.                   automatically  exit  <alt>d and accept the caller.    Where 
  3643.                   this  is nice is for  unattended  file-transfer-then-logoff 
  3644.                   sessions--that  is,  you do not have to wait for  the  file 
  3645.                   transfer to end thinking you are required to hit <esc>   to 
  3646.                   exit <alt>d. 
  3647.  
  3648.                 Post-Upload-Processing
  3649.  
  3650.                   After  you  hangup  from  another  computer,   if  you  had 
  3651.                   downloaded  any files into directories defined as your File 
  3652.                   Areas, the software will automatically import them into the 
  3653.                   BBS.    Both creating new entries,  and doing  post-upload-
  3654.                   processing on them (getting .DIZ's, adding comments, etc.) 
  3655.  
  3656.                   Files   downloaded  into  non-File  Area  directories   are 
  3657.                   ignored. 
  3658.  
  3659.                   Most files have .DIZ's,  so we do not bother trying to  ask 
  3660.                   you to remember the description of the files. 
  3661.  
  3662.                 Hit <f10> when connected to another computer for help.
  3663.  
  3664.                 When you have contacted another BBS,  the following  keys are 
  3665.                 active: 
  3666.  
  3667.                 <f1>       toggles the trapping of all comm I/O to a file.
  3668.                 <f2>       Send a file (ASCII send--no protocols).    Can use 
  3669.                            wildcards  to  send a random file from a bunch  of 
  3670.                            files.  No stop/exit key handling is done. 
  3671.                 <f9>       toggle between 25 and 50 line screen modes.  Note:
  3672.                            this does clear the screen when you do it.  
  3673.                 <f10>      quicky key help.
  3674.                 <pgup>     to send a file.   You must enter the full path and 
  3675.                            filename  of the file(s)  to upload--wildcards are 
  3676.                            OK. 
  3677.  
  3678.                                                                           -79-
  3679.  
  3680.                 <pgdn>     to  receive a file.   After starting the  transfer 
  3681.                            just hit <pgdn>.
  3682.                 <end>      to transmit any net mail meant for that BBS.    If 
  3683.                            you  did not dial with "d string"  or  "n netaddr" 
  3684.                            then  it  will  ask you which net address to  use. 
  3685.                            Once hit,  there is no way  to abort  <end>--since 
  3686.                            the other BBS will now  accept nothing less than a 
  3687.                            mail attempt.  This must, can only, be done before 
  3688.                            you enter your login name. 
  3689.                 <ins>      this brings up the contents of NOTEPAD.TXT.   When 
  3690.                            a  string is selected,  it will be sent out as  if 
  3691.                            you typed it.  Use a text editor to add/edit lines 
  3692.                            of  text in this file.   If you change your  mind, 
  3693.                            <esc>   will exit it--otherwise any key  (such  as 
  3694.                            <ins> again) will send the selected text. 
  3695.                 <alt>c     this will clear the screen,  and reset the  screen 
  3696.                            back to 80x25  mode.  Mainly useful when using GIP 
  3697.                            if for some reason you get stuck in graphics mode. 
  3698.                 <alt>h     to hang up.
  3699.                 <alt>l     to  "turn the tables".   This allows the sysop  on 
  3700.                            the  other end to log into your BBS as if it  were 
  3701.                            they who called you.   If using JDR_BBS, then that 
  3702.                            sysop  must be in <alt>p mode.   If using  another 
  3703.                            BBS program,  then they must be in a "pure mode"--
  3704.                            that  is,  where they accept everything that comes 
  3705.                            in,  and do not send ANSI codes back out (example, 
  3706.                            chat is not a "pure mode",  when it changes colors 
  3707.                            depending on who is "talking".).   "Pure mode"  is 
  3708.                            also known as "raw mode" and "command mode". 
  3709.                 <alt>s     to  shell  to DOS.   From the shell,  you may  use 
  3710.                            something like LIST to examine  the  trapping file 
  3711.                            (if you were trapping). 
  3712.  
  3713.                 On  some BBS's,  you will be able to use <Control>S to pause, 
  3714.                 and <Control>Q  to  un-pause  (note,  you  may  have  to  hit 
  3715.                 <Control>Q twice). 
  3716.  
  3717.                 Unfortunately,   one  of  the most useful  abilities  of most 
  3718.                 communications programs is missing:  the backscroll buffer. I 
  3719.                 do plan to add this. 
  3720.  
  3721.                                                                           -80-
  3722.  
  3723. CUSTOMIZING     The  single key to turn the BBS "on"  is to change  the  comm 
  3724. 201             port in "Change Settings",  to something besides zero (like 1 
  3725.                 for COM1:).  Answer "N" to the "Null port?"   question.   You 
  3726.                 will need to already have the fossil installed and defined in 
  3727.                 your CONFIG.SYS.  Or you can just use JDRBBS.EXE /port=1.
  3728.  
  3729.                 When designing your BBS, there are three things you primarily 
  3730.                 change: the menus (commands), the ANSIs, and the text. 
  3731.  
  3732.                 You use McEditor to change the menu commands.  Designing your 
  3733.                 own  commands or just moving around what is there.   This  is 
  3734.                 explained farther on into the docs. 
  3735.  
  3736.                 You  use  TheDraw,  or some other ANSI drawing  program,   to 
  3737.                 design  your ANSIs.   Your ANSIs are the primary "look"  of a 
  3738.                 BBS. 
  3739.  
  3740.                 You  edit LINES.TXT and TXT_BLKS.TXT to change the text  that 
  3741.                 is displayed.  You have complete control over all text.   The 
  3742.                 words you choose provide the "feel" of a BBS. 
  3743.  
  3744.                 You  can  customize each node differently,  as well  as  have 
  3745.                 different Styles\Languages available. 
  3746.                 
  3747.                 Besides the ability to put any commands onto any menu,  there 
  3748.                 are  numerous  ANSI smart-codes you can use to beef up  menus 
  3749.                 (or ANSI displays)  even more.  For a list of these,  as well 
  3750.                 as   explainations   of  the  ANSI  codes  themselves,    see 
  3751.                 HELP\ANSI.HLP. 
  3752.  
  3753.                 The  following files are where ALL text is  hiding.    Users, 
  3754.                 however, only see text from LINES.TXT and TXT_BLKS.TXT.  They 
  3755.                 are  all standard text files that you may edit using any text 
  3756.                 editor.
  3757.                 
  3758.                 IMPORTANT:  When editing these files,  you  should completely 
  3759.                 exit the BBS (and  all nodes if doing a multi-node operation) 
  3760.                 first, then edit.  Do not edit them while shelling to DOS, as 
  3761.                 the index pointers will need to be updated (otherwise you 
  3762.                 will text start and stop in odd places). 
  3763.                 
  3764.                 LINES.TXT
  3765.                 
  3766.                   See  the  LINES.TXT  file itself  for  information  on  its 
  3767.                   contents. 
  3768.                 
  3769.                   But mainly of interest to you is like 001.   This  contains 
  3770.                   the often-used "general logo".   When the software wants to 
  3771.                   clear the screen,  it sometimes uses this logo.   So at the 
  3772.                   very least, what you substitute in should clear the screen.  
  3773.                   It provides a nice  way  to remind users  what BBS they are 
  3774.                   connected to, but can be reduced to just "[0;30m[2J". 
  3775.  
  3776.                                                                           -81-
  3777.  
  3778.                   When you see something displayed  that you want to change--
  3779.                   perhaps  a  different wording--then search  for it in  this 
  3780.                   file  (and/or  TXT_BLKS.TXT)  and replace it with what  you 
  3781.                   want. 
  3782.  
  3783.                 TXT_BLKS.TXT
  3784.                   
  3785.                   Blocks are  lines  of  text that have  the  same  first two 
  3786.                   numbers.     Unlike   LINES.TXT,   which   has   its   text 
  3787.                   disorganized,  this file has its text organized so that all 
  3788.                   the strings for a specific routine are together. 
  3789.  
  3790.                   When editing the text strings, %1, %2, %3, %4 act as place-
  3791.                   holders for data with some strings.   This was done so  you 
  3792.                   could more easily edit a "whole string".  As this tells you 
  3793.                   how the data fits into the string, and in many cases allows 
  3794.                   you to shift the order of display around. 
  3795.  
  3796.                   Example:                             "%1 = %2, %3"
  3797.                   If the program normally displays:    "Sysop = Rohner, John"
  3798.                   Then you could change the string to: "%1 = %3 %2"
  3799.                                  and it would display: "Sysop = John Rohner"
  3800.  
  3801.                   That  is,  the %1's/etc.  do not need to be in any kind  of 
  3802.                   order.  In most cases,  you can also drop a %#  to stop the 
  3803.                   display  of  the  information,  or add  a  %#   to  display 
  3804.                   duplicates of information: 
  3805.  
  3806.                           with the above changed to: "%1 = %3 the %1"
  3807.                                    it would display: "Sysop = John the Sysop"
  3808.  
  3809.                   For  those of you who work with C/C++,  you'll notice  that 
  3810.                   this is very similar to the printf/etc. command. 
  3811.  
  3812.                 SHORT.TXT
  3813.  
  3814.                   Like  LINES.TXT.    It contains a hodge-podge  of  strings.  
  3815.                   Such  as:  the various censoring words,  the phone  dialing 
  3816.                   string, and the <ctrl>Fx hot key definitions. 
  3817.  
  3818.                 PRG_BLKS.TXT
  3819.                   
  3820.                   Is a text block file like TXT_BLKS.TXT.
  3821.  
  3822.                   PRG_BLKS.TXT  contains  blocks only the sysop will  usually 
  3823.                   see:  text  for the sysop commands,  and system-use blocks.  
  3824.                   Almost  always,  this file will contain nothing  the  sysop 
  3825.                   cares about. 
  3826.                 
  3827.                 SYS_BLKS.TXT
  3828.                   
  3829.                   Is a text block file like TXT_BLKS.TXT.
  3830.  
  3831.                                                                           -82-
  3832.                 
  3833.                   SYS_BLKS.TXT is  similar to PRG_BLKS.TXT,  but  it contains 
  3834.                   stuff a sysop is slightly more likely to want to change. 
  3835.                 
  3836.                 DB_BLKS.TXT
  3837.                   
  3838.                   Is a text block file like TXT_BLKS.TXT, but follows a rigid 
  3839.                   design formula. 
  3840.  
  3841.  
  3842.                   DB_BLKS.TXT contains  DataBaser definition  blocks.   These 
  3843.                   blocks describe  the  various  databases  to  use  with the 
  3844.                   DataBaser system.  You can add your own databases,  but you 
  3845.                   should  not modify those already created.    The  DataBaser 
  3846.                   system is described later in these docs. 
  3847.  
  3848.                 See  COMMON\COMMON.HLP  for information on how the  BBS  uses 
  3849.                 COMMON.LST  files to determine when it should use a Language-
  3850.                 specific version of a file, or one in the COMMON directory. 
  3851.  
  3852.                 LINES.TXT  talks a little about its smart-codes,   but  these 
  3853.                 codes can be used just about anywhere.   Perhaps the two most 
  3854.                 interesting ones are: 
  3855.                 
  3856.                     @pathname@  to display a file, and
  3857.                     &pathname&  to shell and run a sub-program.
  3858.  
  3859.                 The  HELP dir is also filled with subdirectories filled  with 
  3860.                 sample ANSIs. 
  3861.  
  3862.  
  3863.                                                                           -83-
  3864.  
  3865. SECURITY        The  software will allow you to work with Security Levels  in 
  3866. LEVELS          the  range of -32,767  to +32,767.   Using  negative  values, 
  3867.                 however, might not be recognized in some routines. 
  3868.                 
  3869.                 There are no "locked in" Security Level values that force you 
  3870.                 define  a specific value to a specific type of user.    Users 
  3871.                 may have any Security Level value. 
  3872.                 
  3873.                 You  edit  your Security Levels from the sysop  menu  command 
  3874.                 "Security Levels" under Global: Users. 
  3875.                 
  3876.                 The  software will either use  their SL directly ("if SL <  x 
  3877.                 then ...")  or  indirectly ("if SL is > x and SL is < y  then 
  3878.                 ...").  This allows you to use the Security Level system as a 
  3879.                 "reward" and "punishment" system if you want. 
  3880.  
  3881.                 I just use a simple six level scale (5,  10, 20, 90, 95, 100) 
  3882.                 myself, but you can do what you want. 
  3883.  
  3884.                 Important:   When  entering  the Security Level data  in  the 
  3885.                 Security  Levels  database,   you must enter  the  values  in 
  3886.                 increasing order (for example,  5, 50, 500--not 5,  20,  10).  
  3887.                 So  that  when done,  your first entry  contains  the  lowest 
  3888.                 value, and your last contains the highest.  The software will 
  3889.                 make  an attempt to sort any unsorted entries at the time  of 
  3890.                 input. 
  3891.                 
  3892.                 The  highest (last entry)  is assumed to be the Sysop  level.  
  3893.                 The second highest (next to last entry)  is assumed to be the 
  3894.                 Co-Sysop  level.   Since Co-Sysop's have a lot of the Sysop's 
  3895.                 power, you should be careful about whom you wish to give this 
  3896.                 SL out to.   Even if you do not wish to have Co-Sysop's,  you 
  3897.                 must still create an SL value for one. 
  3898.                 
  3899.                 After adding/removing SL's in the SL's database,  you  should 
  3900.                 run "Update Stats",  or you will just get nonsense when doing 
  3901.                 a "Stats Display". 
  3902.  
  3903.                 Do not mess around with the security levels for message  area 
  3904.                 001,  Private Mail.  All users need to be able to access this 
  3905.                 area,   so your SL's for accessing this area should always be 
  3906.                 equal to, or lower, than your lowest defined SL. 
  3907.                 
  3908.                 SL's (used in commands,  etc.)  do not have to be an SL value 
  3909.                 in your SL database.   Thus, if a command requires SL 10, and 
  3910.                 you  have  defined  SL's of 5 and 10,  if you give a  user  6 
  3911.                 through  9,  they still will not be able to access that SL 10 
  3912.                 command. 
  3913.                
  3914. Ghosting        Some BBS programs use "user flags" as an enhancement to their 
  3915.                 SL  system.   A  user would have to have both the SL and  the 
  3916.                 flag(s) to do a command. 
  3917.  
  3918.                                                                           -84-
  3919.  
  3920.                 I  have  a  system  just as  powerful.    It  is  called  "SL 
  3921.                 ghosting". 
  3922.  
  3923.                 It  is simple:  you have two security levels;  one that users 
  3924.                 see, and one that the program uses. 
  3925.  
  3926.                 When at the SL database,  the real security level is referred 
  3927.                 to as the "SL value" and the security level the user see's is 
  3928.                 referred to as the "show SL". 
  3929.  
  3930.                 This allows you to give a user of, say, real SL 4 30  minutes 
  3931.                 per  day,  and one of real SL 5 60  minutes per  day,   while 
  3932.                 having  both of them think they are level 5 because both SL's 
  3933.                 have a "show SL" of "5". 
  3934.  
  3935.                 But besides simple user limits, the real use for this is with 
  3936.                 menu  commands.    Providing  a way to  separate  your  users 
  3937.                 internally without them knowing about it. 
  3938.  
  3939.                 EXAMPLE
  3940.                 ┌───────────────────────────────────────────────────────────┐
  3941.                 │Your BBS has the following time guidelines:                │
  3942.                 │                                                           │
  3943.                 │  Normal user:  60 minute limit per week                   │
  3944.                 │  Donated $1 :  70 minute limit per week                   │
  3945.                 │  Donated $10: 100 minute limit per week                   │
  3946.                 │                                                           │
  3947.                 │Then in your SL database:                                  │
  3948.                 │                                                           │
  3949.                 │   Real SL    Show SL    Free Minutes                      │
  3950.                 │     10         10            60                           │
  3951.                 │     11         10            70                           │
  3952.                 │     12         10           100                           │
  3953.                 │                                                           │
  3954.                 │Thus you have three different limits, three different SL's,│ 
  3955.                 │but the users never know it--they all think they are level │
  3956.                 │10.                                                        │
  3957.                 └───────────────────────────────────────────────────────────┘
  3958.  
  3959.                                                                           -85-
  3960.  
  3961. SYSOPS          For message bases,  file areas, and doors.  The sysop of that 
  3962.                 area is the one true sysop in that area--the real sysop being 
  3963.                 just another user.
  3964.  
  3965.                 For most other things, when I say "sysop only", what I really 
  3966.                 mean is anyone with a sysop-level security level. 
  3967.  
  3968.                 Pay  attention to some of the commands,  they offer different 
  3969.                 options and displays depending on whether the user is a sysop 
  3970.                 or not. 
  3971.  
  3972.                 Other stuff,  like some time-out functions, work for whomever 
  3973.                 is at the console. 
  3974.  
  3975. Co-Sysop's      A  Co-Sysop  is defined as being anyone with the  SL  defined 
  3976.                 just before that of the Sysop's.  Example: the sysop has 100, 
  3977.                 and  the  co-sysop  has 95.   The co-sysop has  many  of  the 
  3978.                 abilities and views of the sysop. 
  3979.                 
  3980.                 Some of their powers:
  3981.                 
  3982.                   - Can delete Questionaire entries.
  3983.                   - Can enter multiple spaces in a user name.
  3984.                   - No inactivity time-out.
  3985.                   - Can access any file in any file area.
  3986.                   - Can see invisible files.
  3987.                   - Views uncensored callers log.
  3988.                   - Reading messages:
  3989.                       User Maintenance
  3990.                       Edit message info
  3991.                       Kill file attaches
  3992.                       Send user -> PR
  3993.                       AI's go fish
  3994.                   - Undelete messages
  3995.                   - Delete File Area files
  3996.                   - Kill Ramblings
  3997.                   - FREQ files from other BBS's
  3998.                   - Delete users
  3999.  
  4000.                 Things the sysop can do that don't utilize pathnames  on  the 
  4001.                 Hard Drive. 
  4002.                 
  4003.                 It  is assumed that the Co-Sysop DOES NOT have access to  the 
  4004.                 sysop menus.  Any commands from those menus are likely to  be 
  4005.                 the  same type you would do for  a  File-Op/Message-Op  (File 
  4006.                 Maint,  etc.)  and should be put into a menu for the Co-Sysop 
  4007.                 rather than letting him access the sysop menus. 
  4008.  
  4009. File-Op's       A  File-Op is a user whom you turn over day-to-day control of 
  4010.                 one or more File Areas to. 
  4011.  
  4012.                                                                           -86-
  4013.  
  4014.                 File-Op's do not have "sysop level"  power.   They are normal 
  4015.                 users with extended powers. 
  4016.  
  4017.                 Both the File-Op and the sysop always see invisible files  in 
  4018.                 areas  under the File-Op's control.   All  File-Op  abilities 
  4019.                 only work in directories under their control. 
  4020.  
  4021.                 When using List Unvalidated files ("LUnV"),  only those areas 
  4022.                 to which the user is the File-Op are listed.  If the sysop is 
  4023.                 not the File-Op  of  an  area,  he too  will  not see (not be 
  4024.                 bothered with)its unvalidated files. 
  4025.  
  4026.                 When  entering descriptions for files,  only the File-Op  can 
  4027.                 avoid description censoring. 
  4028.  
  4029.                 When  using the following commands,  the File-Op will only be 
  4030.                 allowed at files that are in areas under his control: 
  4031.  
  4032.                   command title                menu command
  4033.                 
  4034.                   Oust Files                       RemF
  4035.                   Oust Files/Penalty               UPen
  4036.                   Validate Files                   ValF
  4037.                   File Maintenance                 File
  4038.  
  4039.                 Normally,   to  support a File-Op you will have to  create  a 
  4040.                 File-Op menu for him to use.   The above commands are a  good 
  4041.                 start. 
  4042.  
  4043.                 This menu would normally contain at least Oust Files and File 
  4044.                 Maintenance.   Also "convienence" commands such as:  Add File 
  4045.                 Review, Leave a Private Message, Feedback to Sysop, List Your 
  4046.                 Area (a "PagF _#" command), etc. 
  4047.  
  4048.                 You  will probably also have to "ghost"  the File-Op a higher 
  4049.                 Security Level.  If they are SL 10, give them SL 11.  Then in 
  4050.                 your SL's configuration, add SL 11 but give it a "show" value 
  4051.                 of  10.    That way you can make a command to let them go  to 
  4052.                 their File-Op menu without other level 10 users accessing it, 
  4053.                 and  you still limit this File-Op to normal (say,  not  level 
  4054.                 20) commands (because everything below level 20  is not level 
  4055.                 20).  By using a "show" of 10, he doesn't know he's level 11. 
  4056.  
  4057.                 Or  you could save yourself the ghosting hassle and just give 
  4058.                 them a higher SL. 
  4059.  
  4060.                                                                           -87-
  4061.  
  4062. FILE AREAS      File  Area  Definitions  (File  Area  Maintenance)--like  all 
  4063.                 configuration stuff--is done in the sysop menu. 
  4064.  
  4065.                 EXCLUDE.LST  can  which can be used to stop the  creation  of 
  4066.                 files matching specific filenames.  Useful with CD-ROM's that 
  4067.                 have multiple files (such as FILES.BBS) in each directory. 
  4068.  
  4069. Defining        File Areas consist of the following fields:
  4070.  
  4071.                 Download SL (minimum and maximum)
  4072.                   
  4073.                   Only  when  a user has an SL that is at least that  of  the 
  4074.                   minimum, and no more than that of the maximum, will they be 
  4075.                   able to download files from that area. 
  4076.  
  4077.                   Example: if you use 5 for min, and 10 for max:
  4078.                            SL < 4 cannot DL
  4079.                            SL 4 cannot DL
  4080.                            SL 5 can DL
  4081.                            SL 6 to 9 can DL
  4082.                            SL 10 can DL
  4083.                            SL 11 cannot DL
  4084.                            SL > 11 cannot DL
  4085.  
  4086.                   Normally,   you  just set the SL to something  high,   like 
  4087.                   32000.    But  this "windowed access"  capability lets  you 
  4088.                   restrict  access  to  users of even high  SL  from  certain 
  4089.                   areas. 
  4090.  
  4091.                 Upload SL (minimum and maximum)
  4092.                   
  4093.                   Only when  a  user has an SL that is at least  that of  the 
  4094.                   minimum, and no more than that of the maximum, will they be 
  4095.                   able to upload files to that area. 
  4096.  
  4097.                   For this to matter, you must also set File Area Attribute 4 
  4098.                   (allow uploads) ON. 
  4099.                   
  4100.                 Scan/List SL (minimum and maximum)
  4101.                   
  4102.                   Only when  a  user has an SL that is at least  that of  the 
  4103.                   minimum, and no more than that of the maximum, will they be 
  4104.                   able to list (scan/view) the contents of that area. 
  4105.  
  4106.                   This is also the access limitor SL.   So users outside this 
  4107.                   SL range cannot switch to this area.   Nor will they see it 
  4108.                   listed on any internally generated selection menus. 
  4109.  
  4110.                                                                           -88-
  4111.  
  4112.                   These  SL values are also what is used to form Master  List 
  4113.                   "SL  tiers".    We  create a Master List for each  tier  of 
  4114.                   access SL's (vs. normal SL's).
  4115.  
  4116.                   Example:  File Area 1 SL = 0
  4117.                             File Area 2 SL = 10
  4118.                             File Area 3 SL = 20
  4119.                   Gives us 3 SL tiers: < 10, < 20, 20+ for which we will make 
  4120.                   3   Master Lists.   When a user downloads the Master  List, 
  4121.                   they are given the list appropriate for their SL. 
  4122.  
  4123.                 Access Time (start and end)
  4124.                   
  4125.                   A  user may download,  list,  or upload files to this  area 
  4126.                   only  during  the defined hours.   Note that,  starting  an 
  4127.                   upload or download inside the valid time, that then extends 
  4128.                   outside the allowed time (eg.  downloading a massive  file) 
  4129.                   will be allowed. 
  4130.  
  4131.                   Set  these to be the same (such as 00:00:00)  to  allow  24 
  4132.                   hour (continuous) access. 
  4133.  
  4134.                   When  outside  this  time,   the  File  Area  will  not  be 
  4135.                   accessible,  and users will not be allowed to select  files 
  4136.                   from  that area.   It will be as if the File Area  did  not 
  4137.                   exist. 
  4138.  
  4139.                 Circular buffer size.
  4140.                   
  4141.                   If this field contains anything other than zero,  than  the 
  4142.                   File  Area is said to have a "circular buffer".    Whenever 
  4143.                   the  number of files in that area reaches this value,   the 
  4144.                   oldest file will be deleted.  Example: if you set it to 50: 
  4145.                   if there are 50 files in it, and someone uploads 3 files to 
  4146.                   this  area,  then the oldest 3 files will be deleted.    So 
  4147.                   there will be 50 files again.  If there were 45 files, then 
  4148.                   it would have 48  files--since it  did not reach 50,  there 
  4149.                   was no need to delete files.   A  zero value in this  field 
  4150.                   means  there are no limits on the number of files that  can 
  4151.                   be active in this area. 
  4152.                   
  4153.                   Oldest  file  being  the  one in the area/on  the  BBS  the 
  4154.                   longest--not by current file date.  The "never auto-delete" 
  4155.                   file Attribute will let an old file escape deletion. 
  4156.  
  4157.                   [note: the circular buffer is really not working]
  4158.  
  4159.                 Attributes
  4160.                   
  4161.                   2  means that you  wish  uploads and downloads to/from this 
  4162.                      area to show up in the Callers Login such a way that all 
  4163.                      users can see it.   If OFF,  only the sysop will see the 
  4164.                      transfer information. 
  4165.  
  4166.                                                                           -89-
  4167.  
  4168.                   3  means  that  you wish the L&D/Point values to  be  shown 
  4169.                      when listing the contents of the area.  Setting this OFF 
  4170.                      overrides  the  user's  toggle  to  view  the  L&D/Point 
  4171.                      values. 
  4172.  
  4173.                      Whether  the L&D/File Point values are visible may  also 
  4174.                      depend on which Form Type you use. 
  4175.  
  4176.                   4  means  that users may upload to  this area.    When  not 
  4177.                      included,  any uploads attempted to this area go to area 
  4178.                      number 001 (if possible). 
  4179.  
  4180.                   5  Normally  files are listed in  alphabetical order (A  to 
  4181.                      Z).  When this is ON, files will be listed in order from 
  4182.                      newest to oldest.  
  4183.                      
  4184.                   6  means   that   files  in  this  area  are  said  to   be 
  4185.                      "transient".    This  is for such as  floppy  or  CD-ROM 
  4186.                      drives--where  you  swap  in  and  out  disks  of  files 
  4187.                      frequently.    When  this is ON,  auto-deletion of  file 
  4188.                      entries not found is turned off. 
  4189.                      
  4190.                      Example:   You have two floppies,  each with two  files.  
  4191.                      With  this  OFF,  each time you exchanged  floppies  the 
  4192.                      system  would  automatically delete the file entries  of 
  4193.                      the files on the out floppy.  With this ON, you can swap 
  4194.                      the  floppies  without having to redo  the  descriptions 
  4195.                      each  time you swap in a new disk (although you do  have 
  4196.                      to do them the first time, like any new file). 
  4197.  
  4198.                      For  multiple  CD's  in the same drive,  they must  have 
  4199.                      different directory structures (defined File Areas)  and 
  4200.                      by  keeping both with this ON,  you'll be able to rotate 
  4201.                      the disks. 
  4202.  
  4203.                      When this is ON,  the contents of this area will not  be 
  4204.                      put in any Master List either. 
  4205.  
  4206.                      It  is  only  useful  for BBS's which  like  to  have  a 
  4207.                      rotating  file collection:  "specialized CD each day  of 
  4208.                      the week" type of system. 
  4209.  
  4210.                      Simply  giving  a File Area(s)  an List/View min  SL  of 
  4211.                      32000  might,  in some cases,  be better than using this 
  4212.                      Attribute.    You  give the SL on the "out"  CD's,   and 
  4213.                      change it to normal for the "in" CD.  See the sysop 
  4214.                      command to globally change File Area SL values.
  4215.  
  4216.                   7  Normally  the  directory  is sorted  before  displaying.  
  4217.                      Turning  this  ON tells you to list it as it is.    This 
  4218.                      does not matter if 5 is ON. 
  4219.  
  4220.                                                                           -90-
  4221.  
  4222.                      Mainly  useful  for CD areas which  have  already-sorted 
  4223.                      directories.   However,  the ability to fold directories 
  4224.                      into  each  other,   and  to  ghost  files  into   other 
  4225.                      directories,  is making this Attribute increasingly less 
  4226.                      useful. 
  4227.  
  4228.                   9  means  you  do  not  wish  the  software  to  do   auto-
  4229.                      corrections of the entries in this area while displaying 
  4230.                      the  contents  of  this  area.    These auto-corrections 
  4231.                      include  updating/fixing file sizes,   file dates,  File 
  4232.                      Area information.   As well as discovering new files and 
  4233.                      removing entries for missing files. 
  4234.  
  4235.                      For  CD-ROM directories,  this should be ON once you get 
  4236.                      the  area and its descriptions/etc.  set up the way  you 
  4237.                      want  it.   It speeds things up,  particularly on  areas 
  4238.                      with lots of files. 
  4239.  
  4240.                      However,   if you have a Primary Path defined on a  hard 
  4241.                      disk, and fold in multiple CD areas,  you may still want 
  4242.                      to leave this OFF so the auto-fixing is done on the hard 
  4243.                      disk area.  Although, certainly, any all-CD areas should 
  4244.                      have this ON to speed things up. 
  4245.  
  4246.                      With  large numbers of files in an area,  or areas  with 
  4247.                      lots of EXCLUDE.LST files,  can be speeded up by keeping 
  4248.                      this Attribute OFF.  But if you do turn if off, remember 
  4249.                      that the software will not auto-discover and auto-remove 
  4250.                      entries  when  you copy/delete files in  that  directory 
  4251.                      from  DOS.   Although  the Oust  Files  and  Move  Files 
  4252.                      commands will manage the directory properly. 
  4253.                      
  4254.                   A  means to not include the contents of this area in any of 
  4255.                      the Master Lists.  Master Lists are created individually 
  4256.                      for  each  user  SL  tier.    Useful  if  you  keep  the 
  4257.                      descriptions  in  a user-downloadable list of  your  own 
  4258.                      (such  as a ready-made list of your CD areas--speeds  up 
  4259.                      building  of the Master List by being able to skip  some 
  4260.                      areas). 
  4261.  
  4262.                   B  means that all files in this area are to be free.
  4263.  
  4264.                   You may mix-and-match the above attributes.
  4265.  
  4266.                 Maximum MB
  4267.  
  4268.                   This defines the maximum number of megabytes this area  may 
  4269.                   be.   When it gets near this value,  users will not be able 
  4270.                   to upload to this area.   Beyond upload restrictions,  this 
  4271.                   value is not used. 
  4272.  
  4273.                                                                           -91-
  4274.  
  4275.                   When  uploading to this area,  the "amount of  free  space" 
  4276.                   shown is not the real value,  but rather this maximum  less 
  4277.                   what is already used up.  Example: if this is 100 (100 MB), 
  4278.                   and 96 MB are used, it will show "4 MB free"  (unless there 
  4279.                   is  less  than  that really,  then it will  show  the  real 
  4280.                   amount). 
  4281.  
  4282.                   [note: the Max MB limitor is really not working]
  4283.  
  4284.                 File Form
  4285.  
  4286.                   This  defines which file listing format/type we should  use 
  4287.                   when displaying this area. 
  4288.  
  4289.                   Sample formats are in the HELP\TYPES directory.  The actual 
  4290.                   definitions are stored in GLOBAL\TEXT\LISTING.TXT (see  the 
  4291.                   file for additional information).   You may use one of  the 
  4292.                   predefined types,  or create your own.   It is an EXTREMELY 
  4293.                   flexible  system,  allowing you to change everything  about 
  4294.                   the headers and the way the file lines are to be displayed. 
  4295.  
  4296.                 NewFilesPtr
  4297.  
  4298.                   This is the value of the highest NewFilesPtr that this File 
  4299.                   Area has ever seen.
  4300.  
  4301.                   This  is maintained internally,  so you normally would  not 
  4302.                   mess  with  it.   However,  it should  also  be  reasonable 
  4303.                   (usually under 100,000).   If it becomes unreasonable, just 
  4304.                   set  it to 0 and it will fix itself.   Sometimes a  corrupt 
  4305.                   FILELIST.HDR file can  mess these values up. 
  4306.  
  4307.                 File-Op
  4308.                   
  4309.                   This is  a  name  field,   and contains  the  name  of  the 
  4310.                   "overseer" of that file area. 
  4311.                   
  4312.                   You,  the sysop can do many  file   functions,    including 
  4313.                   delete, modifying the descriptions,  etc.  Including a name 
  4314.                   here will allow that user  to ALSO do these functions (only 
  4315.                   one name allowed).  
  4316.  
  4317.                   Only  those with "sysop"  Security Levels,  or the name  in 
  4318.                   this File-Op field will be able to "work on"  files in this 
  4319.                   File Area.  Useful for delegating the maintenance of a file 
  4320.                   area to a user. 
  4321.  
  4322.                   It  is  usually very helpful to File-Op's to create a  menu 
  4323.                   containing   commands   they  may  use.    Such   as   File 
  4324.                   Maintenance,  List Unvalidated Files, Validate Files,  etc.  
  4325.                   All of these have special restrictions which will only give 
  4326.                   the File-Op access to files in his controlling areas. 
  4327.  
  4328.                                                                           -92-
  4329.  
  4330.                 Primary Path
  4331.                   
  4332.                   This  contains  the primary path to which  this  file  area 
  4333.                   refers. 
  4334.  
  4335.                   When  a user uploads a file to this area,  it goes in  this 
  4336.                   directory. 
  4337.  
  4338.                   When  the sysop moves a file from one File Area to another, 
  4339.                   the  file is moved into this directory.    Note:   ghosting 
  4340.                   files to other File Areas does not move them. 
  4341.  
  4342.                 Title
  4343.                   
  4344.                   Refers  to what the users see as the title  when  they list 
  4345.                   the contents of this File Area. 
  4346.  
  4347.                 Additional Paths
  4348.  
  4349.                   Finally, the good stuff.
  4350.  
  4351.                   These  fields let you define up to 6 directories which  you 
  4352.                   may "fold" into this File Area. 
  4353.  
  4354.                   "Fold"   means that when this area is listed,  it lists all 
  4355.                   the files in the Primary Path,  and these additional paths.  
  4356.                   The files are also sorted into alphabetical order.   To the 
  4357.                   user, it will look and act just like a single directory. 
  4358.  
  4359.                   We  do  not write or store any files  to  these  additional 
  4360.                   paths.  And they need not be only directories. For example: 
  4361.                   D:\WIN_3   will  use  all  files in the  WIN_3   dir,   but 
  4362.                   D:\WIN_3\W*.ARJ  can  also be used to  only  include  those 
  4363.                   files from that dir that start with "W" and have the ".ARJ" 
  4364.                   extension. 
  4365.  
  4366.                   Best used for folding multiple CD areas into a single area.  
  4367.                   But you can specify hard disk directories as well. 
  4368.  
  4369.                   Commonly used to merge CD areas with a hard drive area:
  4370.                     Primary Path: C:\WIN
  4371.                     Additional Path: D:\WIN_2
  4372.                     Additional Path: D:\WIN_3
  4373.                   Thus,  all your Windows files are in an uploadable  Windows 
  4374.                   directory, even though most of them are on the CD. 
  4375.  
  4376.                   Be careful though.   The software is not designed to handle 
  4377.                   more  than 1000  files per area,  so when you  are  folding 
  4378.                   dirs,  try to keep below this limit (think of the poor user 
  4379.                   who will page through all those files). 
  4380.  
  4381.                 You  can use /RESCAN and /RESCANALL to do auto-fixing if  you 
  4382.                 have  a  lot of fixing to do.   Both compare what is on  your 
  4383.  
  4384.                                                                           -93-
  4385.  
  4386.                 disks  with  what is defined as being on the BBS.    Then  it 
  4387.                 cleans things up.   Only "file is on-line or not"   problems.  
  4388.                 That is,  if you dump a a bunch of new files into an area--it 
  4389.                 would find them and create entries.    If you deleted a bunch 
  4390.                 of files, it would delete their entries. 
  4391.  
  4392.                 What  it won't do is match the files with an area.   Example: 
  4393.                 if  you exit to DOS,  copy a file from area #1  to  area  #3, 
  4394.                 doing a /RESCANALL will not fix the area.   That's done  when 
  4395.                 you  list  the area with Attribute 9 OFF.   If  area  #3   has 
  4396.                 Attribute 9 ON,  then its going to stay invisible until  you 
  4397.                 turn it OFF. 
  4398.                 
  4399.                 /RESCANALL  goes  a  step  farther and  also  checks  the  CD 
  4400.                 (Attribute 9 ON)  areas that /RESCAN normally skips.  Usually 
  4401.                 if  your file system seems so messed up that  you're  banging 
  4402.                 your  head--and  your  File Areas look fine,   then  doing  a 
  4403.                 JDRBBS.EXE /RESCANALL will cure it. 
  4404.  
  4405.                 Upload-stopping works as follows:
  4406.                   
  4407.                   If  the  current area does not have Attribute 4,  or the SL 
  4408.                   for  the area is too high for the user,  then we change  to 
  4409.                   area 001. 
  4410.                   
  4411.                   Then  the  same checks are made,  if the user does not pass 
  4412.                   them all, then they are not allowed to upload. 
  4413.  
  4414.                 Some sysops like to make area 001  a  hidden area,  and force 
  4415.                 all uploads to it.   Then at some later time the sysop  looks 
  4416.                 over the files in area 001,  and moves them,  tests them,  or 
  4417.                 whatever. 
  4418.  
  4419. Menus           The software will provide you flexibility to access your File 
  4420.                 Areas  with  whatever  method  you  want.    These   include: 
  4421.                 an  internally  (quick)   generated menu,   ANSI  menu,   and 
  4422.                 complete systems. 
  4423.  
  4424.                 Internally (quick) generated menus:
  4425.                 
  4426.                   These involve  making  use of the "_g##"  and  "_all"  some 
  4427.                   commands have.  "SelF _all",  for example,  will give you a 
  4428.                   menu of all File Areas you can access.   "SelF  _g##"  will 
  4429.                   produce  a  menu of those File Areas you defined to  be  in 
  4430.                   that group (see File Area Group Handler),  and to which you 
  4431.                   have access. 
  4432.  
  4433.                   After the menu,  the "SelF" command merely switches to that 
  4434.                   file area.  Other commands are "PagF" and "Upld".  All work 
  4435.                   similarly with the "_all" and "_g##" by first bringing up a 
  4436.                   menu and then listing the contents of the selected area, or 
  4437.                   uploading to that area, respectively. 
  4438.  
  4439.                                                                           -94-
  4440.  
  4441.                 ANSI menus:
  4442.  
  4443.                   This  involves  putting individual commands into  an  ANSI.  
  4444.                   Once again, the commands are: "SelF", "PagF", and "Upld". 
  4445.  
  4446.                   However, instead of using the "_g##"  or "_all" extensions.  
  4447.                   You  use these commands with no extensions (except  "SelF") 
  4448.                   or  with  the "_#"  extension (where "#"  is  a  File  Area 
  4449.                   number, eg. _1 for File Area #1). 
  4450.  
  4451.                   You  create  commands,  and put the  commands  onto  menus.  
  4452.                   Example:  to list File Area #20: "Ls20" = "PagF _20".  Then 
  4453.                   anywhere you put "Ls20" it will list/access File Area #20. 
  4454.  
  4455.                   Additional  commands of use are:  "PrvF"  and "NxtF",   for 
  4456.                   "goto  previous  File  Area",  and "goto next  File  Area", 
  4457.                   respectively. 
  4458.  
  4459.                 Complete systems:
  4460.  
  4461.                   These are extended listing systems.   They  include "PagQ", 
  4462.                   "PagA", and "P&Sx". 
  4463.  
  4464.                   "PagQ" will ask you what you want to do. Selecting "All" is 
  4465.                   equivalent to a "PagA". 
  4466.                   
  4467.                   "PagA"  will cycle though  all  the  file areas  accessible 
  4468.                   using the paged method. 
  4469.  
  4470.                   "P&Sx" is the Point & Shoot system. 
  4471.  
  4472.                 A  common  factor  to all the systems is the  batch  download 
  4473.                 queue.    It is accessed via commands when listing the  area, 
  4474.                 and automatically with the P&S system. And you can use "CntB" 
  4475.                 and "AddB" for ANSI menu options. 
  4476.                 
  4477.                 By  having this wide variety of commands,  you may  put  File 
  4478.                 Areas any where you want.   You could,  for instance,   shove 
  4479.                 them into a bunch, or break them up by topic--each having its 
  4480.                 own message area, menu, etc. 
  4481.  
  4482.                 Remember,  however,  that while the ANSI method provides  you 
  4483.                 the  maximum  possible control of menu selection;   the  more 
  4484.                 general commands are easier to start with. 
  4485.  
  4486.                 The commands can be thought of as differing ways of doing the 
  4487.                 same thing.   For instance,  "PagQ" is one menu command,  but 
  4488.                 requires two key strokes to do something.   You could do  the 
  4489.                 same with 4 menu commands ("PagA",  "PagN",  "PagF _all", and 
  4490.                 "PagS") requiring only one keystroke.   Same thing, different 
  4491.                 philosophies for different sysops. 
  4492.                 
  4493.                                                                           -95-
  4494.  
  4495.                 See also: MENU COMMANDS: File
  4496.  
  4497. Diagrammed      The  file  system  can be thought of as  being  two  separate 
  4498. File Examples   parts:   the first part selects a file area,  the second part 
  4499.                 lists the contents of that File Area. 
  4500.  
  4501.                 The  reason they are two parts is because once you  select  a 
  4502.                 File Area to list,  you can move to other File Areas  without 
  4503.                 having to return to that first selection menu. 
  4504.  
  4505.                 The file system offers a plethora of possibilities:  with the 
  4506.                 menu commands,  you can have  the software  list all areas at 
  4507.                 once,  provide a menu of all the areas,  use your own menu of 
  4508.                 all or some areas, provide a menu of some areas.  You may put 
  4509.                 some  or  all your file areas into a single file system,   or 
  4510.                 bust them all up so they are grouped together or individually 
  4511.                 (known  as topical menus:  putting a related  message area(s) 
  4512.                 and related file area(s) into the same menu). 
  4513.                 
  4514.                 All  of  the  commands  below  exit back  to  the  menu  when 
  4515.                 completed.  You can put a "DReq" or somesuch after them to do 
  4516.                 another command before they return to the menu. 
  4517.                 
  4518.                 "PagQ" menu command:
  4519.                 
  4520.                   "PagQ"  is the most powerful of all the file  commands.   A 
  4521.                   sort-of "all-in-one"  command.   Most of the other commands 
  4522.                   are  made up of some fragment of this command.   What  this 
  4523.                   command  does is first ask the user what they want  to  do: 
  4524.                   access  all  files,  access files matching a search string, 
  4525.                   access all new files, or select a File Area to jump to. 
  4526.  
  4527.                   With access-all-files and select-File-Area,  once the  user 
  4528.                   is in the file system they can move to any directory.   But 
  4529.                   matching and new-files  does not  offer  such flexibility--
  4530.                   limiting the  lists to files containing a string,   and new 
  4531.                   files, respectively. 
  4532.  
  4533.                 "PagA" menu command:
  4534.                                     ┌────────────────┐
  4535.                            ┌────────┴───────┐ AREA n │
  4536.                   ┌────────┴───────┐EA 001  │ze desc │
  4537.                   │ FILE AREA 001  │ze desc │ze desc │
  4538.                   │ file size desc │ze desc │        │
  4539.                   │ file size desc │        ├────────┘3
  4540.                   │ Option:        ├────────┘2
  4541.                   └────────────────┘1
  4542.                   Each file area is gone through.  At every 18  file names or 
  4543.                   so (depends on screen size) at the  end  of a file area,  a 
  4544.                   prompt is displayed.   At  this prompt  the user has a wide 
  4545.                   selection  of  commands  including commands to move to  any 
  4546.                   area number.   This works just like the "PagQ"  access-all-
  4547.                   files option. 
  4548.  
  4549.                                                                           -96-
  4550.                 
  4551.                 "SelF _g##" menu command:
  4552.                   ┌────────────────┐
  4553.                   │ SELECT AREA:   │
  4554.                   │ A)  area 001   │
  4555.                   │ B) *area 005   │
  4556.                   │ C)  area x     │
  4557.                   └────────────────┘1
  4558.                   A  menu is presented containing certain File Areas (defined 
  4559.                   as  a group in Group Handler).   When they select an  area, 
  4560.                   they  are  exited from this areas menu back to the  calling 
  4561.                   menu--we  do  not list the area.   Only areas to which  the 
  4562.                   user has access are shown in the selection menu. 
  4563.                 
  4564.                 "SelF" menu command:
  4565.                   ┌────────────────┐
  4566.                   │ SELECT AREA:   │
  4567.                   │ A) *area 001   │
  4568.                   │ B)  area 002   │
  4569.                   │ C)  area n     │
  4570.                   └────────────────┘1
  4571.                   A  menu  is presented containing all  the  accessible  File 
  4572.                   Areas.    When they select an area,  they are exited to the 
  4573.                   menu.  This is just a "switch to File Area" command,  not a 
  4574.                   "switch and list" command. 
  4575.                 
  4576.                   This  command  is  exactly what you would get  using  "SelF 
  4577.                   _g##" if the defined group contained all file areas. 
  4578.                   
  4579.                 "PagF _#" menu command:
  4580.                                     ┌────────────────┐
  4581.                            ┌────────┴───────┐ AREA n │
  4582.                   ┌────────┴───────┐EA 007  │ze desc │
  4583.                   │ FILE AREA 006  │ze desc │ze desc │
  4584.                   │ file size desc │ze desc │        │
  4585.                   │ file size desc │        ├────────┘3
  4586.                   │ Option:        ├────────┘2
  4587.                   └────────────────┘1
  4588.                   This  command  jumps to File Area "#"  and  starts  listing 
  4589.                   files in that area.   One may then choose to move to  other 
  4590.                   areas. These "PagF _#" commands are good for using your own 
  4591.                   ANSI  as  a  File  Area selection screen  rather  than  the 
  4592.                   internally created one. 
  4593.  
  4594.                 "PagF _g##" menu command:
  4595.                                     ┌────────────────┐
  4596.                            ┌────────┴───────┐EA x    │
  4597.                   ┌────────┴───────┐EA 005  │ze desc │
  4598.                   │ SELECT AREA:   │ze desc │ze desc │
  4599.                   │ A)  area 001   │ze desc │ze desc │
  4600.                   │ B) *area 005   │ze desc ├────────┘3
  4601.                   │ C)  area x     ├────────┘2
  4602.                   └────────────────┘1
  4603.  
  4604.                                                                           -97-
  4605.  
  4606.                   A  menu is presented containing certain File Areas (defined 
  4607.                   as  a group in Group Handler).   When they select an  area, 
  4608.                   they  are given the contents of the area.   They  then  can 
  4609.                   move to other areas.   When they exit, they are exited back 
  4610.                   to the original calling menu.  Only areas to which the user 
  4611.                   has access are shown in the selection menu. 
  4612.  
  4613.                 "PagF _all" menu command:
  4614.                                     ┌────────────────┐
  4615.                            ┌────────┴───────┐EA 003  │
  4616.                   ┌────────┴───────┐EA 002  │ze desc │
  4617.                   │ SELECT AREA:   │ze desc │ze desc │
  4618.                   │ A)  area 001   │ze desc │ze desc │
  4619.                   │ B) *area 002   │ze desc ├────────┘3
  4620.                   │ C)  area n     ├────────┘2
  4621.                   └────────────────┘1
  4622.                   A  menu is presented containing all the file areas.    When 
  4623.                   they select an area, they are given the contents listing of 
  4624.                   that area,  they then can move around and list other areas.  
  4625.                   When  they exit,  they are exited back to the calling  menu 
  4626.                   (not  this areas menu).   Only areas to which the user  has 
  4627.                   access are shown in the selection menu.   This is the  same 
  4628.                   as "PagQ"s select-File-Area option. 
  4629.  
  4630.                   This  command  is  exactly what you would get  using  "PagF 
  4631.                   _g##" if the defined group contained all file areas. 
  4632.                 
  4633.                 "P&Sx" menu command:
  4634.                                              ┌────────────────┐
  4635.                                     ┌────────┴───────┐EA 001  │
  4636.                            ┌────────┴───────┐ AREA n │le file │
  4637.                   ┌────────┴───────┐EA 002  │le file │le file │
  4638.                   │ FILE AREA 001  │le file │le file │le file │
  4639.                   │ file file file │le file │le file ├────────┘1
  4640.                   │ file file file │le file ├────────┘3
  4641.                   │ file file file ├────────┘2
  4642.                   └────────────────┘1
  4643.                   The user  has a wide selection of commands while at the P&S 
  4644.                   display.    You can move both forward and backward  through 
  4645.                   the  File Areas.   Only those file areas to which they have 
  4646.                   access do they see. 
  4647.  
  4648.                 There are other interesting file commands available too.
  4649.  
  4650. Files In Area   When  you  copy  files  into a File Area,   these  files  are 
  4651.                 "outside the BBSs domain".   That is,   the software does not 
  4652.                 yet know  about them.   So,  some functions,  that require an 
  4653.                 active file's filename will not yet "see" the file. 
  4654.                 
  4655.                 However, as soon as they are "seen"--when you or a user lists 
  4656.                 the  files  in a File Area--then they are  "discovered"   and 
  4657.                 given an entry, making them active. 
  4658.  
  4659.                                                                           -98-
  4660.  
  4661.                 When  the software discovers files,  the files are assumed to 
  4662.                 be complete (vs.  a  partial upload),  and just given a blank 
  4663.                 description (shows up as "?"). 
  4664.  
  4665. CD-ROM's        CD-ROM's  (and other optical disks)  come with lots of  files 
  4666.                 and lots of variety.   Some have lots of directories with few 
  4667.                 files  per directory,  others have a single (or a few)  large 
  4668.                 directories only.   Either a few very large directories or  a 
  4669.                 reasonable number of medium sized directories is best.  Those 
  4670.                 disks  that use numbers for file names,  that don't  compress 
  4671.                 their  files,  or that put just a couple files per  directory 
  4672.                 (and have hundreds of directories) I  recommend you stay away 
  4673.                 from. 
  4674.  
  4675.                 There  are two ways of accessing CD files with this software.  
  4676.                 Using  a  door program,  or defining the CD's directories  as 
  4677.                 normal  file  areas  (as if they were  on  your  hard  disk).  
  4678.                 Uncompressed  directories,   hundreds  of  directories,    or 
  4679.                 numbered filenames--then you've not much choice,  use a  door 
  4680.                 program  (better  yet,  through the CD  out).    Otherwise  I 
  4681.                 recommend defining the  file  areas.  Since  it  provides the 
  4682.                 same seamless file access as normal File Areas. 
  4683.  
  4684.                 To avoid having all the CD-ROM files be considered "new"   to 
  4685.                 new users, you can set #NEWUSER's NewFilesPtr to 1,  and that 
  4686.                 of all the CD-ROM directories to 0. 
  4687.  
  4688.                 Also  review  the sections above on File Area Attributes  and 
  4689.                 Additional Paths. 
  4690.  
  4691. Special Cases   Normally,   you provide access to your File Areas on  a  "the 
  4692.                 higher the SL, the more File Areas you can access" method: 
  4693.  
  4694.                   File Area #1  Access SL = 0 to 32000
  4695.                   File Area #2  Access SL = 0 to 32000
  4696.                   File Area #3  Access SL = 0 to 32000
  4697.                   File Area #4  Access SL = 10 to 32000 
  4698.                   File Area #5  Access SL = 20 to 32000
  4699.                 
  4700.                 Thus,  SL 20+ can access all areas, SL's 10 to 19  can access 
  4701.                 only  areas 1 to 4,  and SL's less than 10  can  only  access 
  4702.                 areas 1 to 3. 
  4703.  
  4704.                 Well,   that maximum SL is looking pretty useless,  isn't it?  
  4705.                 And  normally  it is useless,  because rarely do you want  to 
  4706.                 deny files to people when possible. 
  4707.  
  4708.                 But lets give the File Areas above some descriptions:
  4709.  
  4710.                   File Area #1: GIFs of cars
  4711.                   File Area #2: GIFs of planes
  4712.                   File Area #3: GIFs of movie stars
  4713.  
  4714.                                                                           -99-
  4715.  
  4716.                   File Area #4: Tiny Toon GIFs
  4717.                   File Area #5: Beastiality GIFs
  4718.                 
  4719.                 You want to make area #4 and area #5  accessible only to paid 
  4720.                 users.  And you want to tailor it so users who get area #4 do 
  4721.                 not get area #5,  and users who get area #5  do not get  area 
  4722.                 #4. 
  4723.  
  4724.                 First:   note that this is extremely rare in the real  world, 
  4725.                 and  if  you  are thinking about this,  chances are  you  are 
  4726.                 thinking too hard about your File Area setup. 
  4727.  
  4728.                   File Area #1  Access SL = 0 to 9
  4729.                   File Area #2  Access SL = 0 to 9
  4730.                   File Area #3  Access SL = 0 to 9
  4731.                   File Area #4  Access SL = 10 to 19
  4732.                   File Area #5  Access SL = 20 to 32000
  4733.  
  4734.                 This  won't do it!   It gives regular users access to areas 1 
  4735.                 to 3, and separates the area 4 and area 5 users.  But what we 
  4736.                 want  is to also let those area 4 and 5 users access areas  1 
  4737.                 to 3. 
  4738.  
  4739.                 Note:   the  sysop  can access all areas no matter  what  the 
  4740.                 security level restrictions are. 
  4741.  
  4742.                 In fact, no combination of SL's will let us do what we want. 
  4743.  
  4744.                 To get what we want,  we have to change the order of the File 
  4745.                 Areas: 
  4746.  
  4747.                   File Area #1: Tiny Toon GIFs
  4748.                   File Area #2: GIFs of cars
  4749.                   File Area #3: GIFs of planes
  4750.                   File Area #4: GIFs of movie stars
  4751.                   File Area #5: Beastiality GIFs
  4752.  
  4753.                 And set the access SL's as so:
  4754.  
  4755.                   File Area #1  Access SL = 1 to 4
  4756.                   File Area #2  Access SL = 0 to 32000
  4757.                   File Area #3  Access SL = 0 to 32000
  4758.                   File Area #4  Access SL = 0 to 32000
  4759.                   File Area #5  Access SL = 6 to 32000
  4760.  
  4761.                 Thus, new users of SL 0 (or 5)  can only access areas 2 to 4.  
  4762.                 But  if a user pays,  and wants the Tiny Toon dir,  you  give 
  4763.                 them SL 1 to 4 and they will be able to access that dir along 
  4764.                 with 2 to 4.  If a paid user wants the Beastiality area,  you 
  4765.                 give  them SL 6 or higher,  and they will be able  to  access 
  4766.                 area 5, and areas 2 to 4. 
  4767.  
  4768.                                                                          -100-
  4769.  
  4770.                 You  didn't really need to re-order them,  but it makes  this 
  4771.                 example clearer.   Showing that location of File Area doesn't 
  4772.                 matter, and that the SL fields of File Areas before and after 
  4773.                 do not matter.   A user is allowed access to a File Area only 
  4774.                 if their SL is in that File Area's range. 
  4775.  
  4776.                 But  more important than this example is to remember how  "SL 
  4777.                 Ghosting"  works--in which internally a user may have one SL, 
  4778.                 but the SL they see as theirs (the Show SL)  can be something 
  4779.                 different.   This is very useful, for example,  when you want 
  4780.                 to  give  a  fellow sysop higher SL,   but  don't  want  them 
  4781.                 accessing any private File Areas.   Just "Show" them a higher 
  4782.                 SL, and they'll never know the difference. 
  4783.  
  4784. Ghosting files  You can now "ghost files".   Ghosting is showing the user one 
  4785.                 thing,   when it's really something else.   In this case,  we 
  4786.                 show  the  user a file as being in one File Area,  when  it's 
  4787.                 really  stored  in another File Area.   To  accomplish  this, 
  4788.                 merely  edit the files'  record so that "Show Area"  contains 
  4789.                 the area to-which you wish to make the file appear.   Useful, 
  4790.                 for example,  for "moving"  files out of one CD area and into 
  4791.                 another  (such  as  when a Graphics dir program  was  wrongly 
  4792.                 placed in the Text Files dir, etc.). 
  4793.  
  4794.                 The  file  will act just like a file in that Show area.    It 
  4795.                 will be displayed with that area's contents listings, it will 
  4796.                 be limited by that area's Attributes and SL's. 
  4797.                 
  4798.                 Note:   you cannot ghost files from one "non-CD"  (File  Area 
  4799.                 Attribute 9 OFF)  area to another "non-CD" area.  One or both 
  4800.                 of  the  areas  (the real area containing the  file  and  the 
  4801.                 ghost/sbow  area)   must be a "CD"  area.   You  could,   for 
  4802.                 example,  put all your .GIF's into one area and ghost them by 
  4803.                 type  into  multiple areas (set Attribute 9 ON for either the 
  4804.                 one area, or the multiple areas, or both). 
  4805.                 
  4806.                                                                          -101-
  4807.  
  4808. MESSAGE AREAS   Message Area Defintions  (Message Area Maintenance)--like all 
  4809.                 configuration stuff--is done in the sysop menu. 
  4810.  
  4811. Defining        Message Areas consist of the following fields:
  4812.  
  4813.                 Post SL
  4814.  
  4815.                   This  is the Minimum Security Level value a user must  have 
  4816.                   to be able to leave a message in this area. 
  4817.  
  4818.                 Read SL
  4819.  
  4820.                   This is the Minimum SL value a user must have to be able to 
  4821.                   read messages in this area. 
  4822.  
  4823.                 Scan SL
  4824.  
  4825.                   This is the Minimum SL value a user must have to  scan/list 
  4826.                   messages in this area. 
  4827.  
  4828.                   This  is also the access limitor SL.   So users  with  less 
  4829.                   than  this SL value cannot switch to this area.   Nor  will 
  4830.                   they  see  it listed on any internally generated  selection 
  4831.                   menus. 
  4832.  
  4833.                 Access Time (start and end)
  4834.  
  4835.                   These define a time window which the Message Area may be 
  4836.                   accessible.  This is rarely used.
  4837.  
  4838.                   Set  the start and end times to the same thing for 24  hour 
  4839.                   (continuous) access allowed. 
  4840.  
  4841.                 Max Messages
  4842.  
  4843.                   If this value is not 0,  then we delete the oldest messages 
  4844.                   in this area when the total number of messages in this area 
  4845.                   reaches this value. 
  4846.  
  4847.                   Example: set this to 500, then once we reach 500, each time 
  4848.                   a new message is added,  the oldest message in the area  is 
  4849.                   deleted.  Thus keeping the total number of messages in this 
  4850.                   area at 500.  Very useful for popular Echos. 
  4851.  
  4852.                   You  can  protect messages from deletion by  setting  their 
  4853.                   "don't auto-delete" Attribute. 
  4854.  
  4855.                   Set this to 0 to disable automatic deleting. 
  4856.  
  4857.                 Next Number
  4858.  
  4859.                   This  is an internally used field,  and is unlikely  to  be 
  4860.                   modified by you. 
  4861.  
  4862.                                                                          -102-
  4863.  
  4864.                   It  contains the number to give the next message posted  in 
  4865.                   this area. 
  4866.  
  4867.                   If  you see that the number is really screwed up (8  digits 
  4868.                   for   example)   then  you  should  fix  it  to   something 
  4869.                   reasonable. 
  4870.  
  4871.                 Attributes
  4872.  
  4873.                   1  means   that  the  FROM:   field  should  be  forced  to 
  4874.                      "Anonymous"   for  all  messages posted  in  this  area.  
  4875.                      Nobody (but the sender) will know who left the message. 
  4876.  
  4877.                   2  means  that  this is a Private area.   The messages  are 
  4878.                      only  visible to the sender,  receiver,  or  Message-Op.  
  4879.                      When  OFF,   the area is Public,  and the  messages  are 
  4880.                      visible to all. 
  4881.                    
  4882.                      When  using the various message reading  menu  commands, 
  4883.                      pay attention to which read private mail, and which read 
  4884.                      public mail.   They do not necessarily read each other's 
  4885.                      type. 
  4886.  
  4887.                   3  means  that the area should be inspected when  receiving 
  4888.                      or sending Net Mail packets.   It  is  also necessary if 
  4889.                      you wish to enter a node address when entering mail, and 
  4890.                      seeing the node addresses when reading mail.  If an area 
  4891.                      does  not have this Attribute,  then no Net Mail will be 
  4892.                      put there,  and no messages will be sent out from there.  
  4893.                      Also, this Attribute tells the  software  to add special 
  4894.                      "^A" "kludge" lines to the message. 
  4895.  
  4896.                      You can really have only two areas with only Attribute 3 
  4897.                      ON (and not with Attribute 9 ON):  private NetMail,  and 
  4898.                      public NetMail.   With private NetMail,  any private Net 
  4899.                      Mail that does not have a matching EchoMail message area 
  4900.                      will be put here.  Similarly for public NetMail.  If you 
  4901.                      have only one NetMail area, then both private and public 
  4902.                      NetMail goes there.  No net areas?  Then inbound NetMail 
  4903.                      (and no-area EchoMail) will be put into the Private Mail 
  4904.                      area. 
  4905.  
  4906.                   5  means  that  only the Message-Op can delete any messages 
  4907.                      in the  area.   This stops both the poster and  receiver 
  4908.                      from  deleting  the message.   Useful  for  areas  which 
  4909.                      provide information that others might be interested in. 
  4910.  
  4911.                   6  means that all messages are forced to use "ALL" as their 
  4912.                      "TO:"  field.  This includes replies.  Nobody is allowed 
  4913.                      to enter a name in the "TO:" field. 
  4914.  
  4915.                                                                          -103-
  4916.  
  4917.                   7  means that NetMail "kludge" lines are shown (these lines 
  4918.                      begin with  an ASCII 1--a little happy face).  This also 
  4919.                      toggles the showing of EchoMail lines: ---,  *  ORIGIN:, 
  4920.                      SEEN-BY, and AREA:. 
  4921.  
  4922.                      The  Message-Op  can hit "S"  when reading  messages  to 
  4923.                      toggle this ON and OFF on-the-fly. 
  4924.  
  4925.                   8  means to  automatically delete NetMail messages  in this 
  4926.                      area  after  they  are [Sent].   Obviously,   this  also 
  4927.                      requires Attribute 3 to be ON.   Normally this should be 
  4928.                      ON for your NetMail areas (but not EchoMail). 
  4929.  
  4930.                   9  means  the area is an EchoMail area.   Attribute 3  must 
  4931.                      also be  set  to ON for any EchoMail area.   Thus,  when 
  4932.                      this Attribute is ON, so must be Attribute 3. 
  4933.  
  4934.                   A  means we  should  append the BBS's own  Origin  lines to 
  4935.                      outbound  EchoMail messages from your BBS.   The  Origin 
  4936.                      line is usually  just wasteful garbage,  and if you want 
  4937.                      to attach one, see SHORT.TXT. 
  4938.  
  4939.                   B  means to use the author's real name for the FROM: field.  
  4940.                      This is used to "force"  real names--some EchoMail areas 
  4941.                      demand it. 
  4942.                 
  4943.                   C  means to  NOT  include the sender's name  in  the quoted 
  4944.                      brackets. 
  4945.  
  4946.                      Example: ┌(John Rohner)  ┐   becomes: ┌               ┐
  4947.                               │text           │            │text           │
  4948.                               └               ┘            └               ┘
  4949.  
  4950.                   D  means to  report  the  active status of  the  sender and 
  4951.                      receiver names.  If the name is not in the current users 
  4952.                      list,  they have a little "(not a current  user)"  noted 
  4953.                      beside their name. 
  4954.  
  4955.                      This is particularly useful for Private Mail.
  4956.                 
  4957.                   E  means  to allow anything in the At:   field.    Normally 
  4958.                      long-form addresses like for Internet. 
  4959.  
  4960.                      We  do not really use this now,  but it will be  in  the 
  4961.                      future. 
  4962.  
  4963.                   You may mix-and-match the above attributes.
  4964.  
  4965.                 Message-Op
  4966.  
  4967.                   The  Message-Op  is the sysop of the  Message  Area.    Any 
  4968.                   messages posted TO:SYSOP in this area will get that persons 
  4969.                   name. 
  4970.  
  4971.                                                                          -104-
  4972.  
  4973.                   Beyond  that,  there isn't much special about a Message-Op.  
  4974.                   They can look at any message, delete any message, etc.  But 
  4975.                   a lot of their power relies on what the sysop gives them. 
  4976.  
  4977.                   Some  nice  things the sysop can give them is  the  ability 
  4978.                   lock/unlock access to one or all users to the message area.  
  4979.                   See the "Lock", "LsLk", and "UnLk" menu commands. 
  4980.  
  4981.                   The  sysop  could  outfit a Message-Op  menu  with  related 
  4982.                   commands, maybe a related file area, etc. 
  4983.  
  4984.                 Title
  4985.  
  4986.                   The  title  of  a Message Area is what  is  displayed  when 
  4987.                   scanning the area,  reading messages in the area,  and  for 
  4988.                   internally generated select-area menus. 
  4989.  
  4990.                 You are free to modify any areas as you wish, except for area 
  4991.                 #1.   This is always Private Mail.   The Message-Op is always 
  4992.                 the sysop. 
  4993.  
  4994. Menus           The  Message Area commands are quite similar to the File Area 
  4995.                 commands.   For instance, "SelM"  to select a Message Area is 
  4996.                 just like its "SelF" (select File Area) brother. 
  4997.  
  4998.                 Most of the other commands, for reading and writing messages, 
  4999.                 are less generalized and usually only offer the non-parameter 
  5000.                 form  (uses  the current area)  and the "_#"  parameter  form 
  5001.                 (switch to area "#" first and then do the command). 
  5002.                                   
  5003. Toggling        When  a  user toggles a message area INACTIVE,  it  is  quite 
  5004.                 similar to making the area out of their SL range. 
  5005.  
  5006.                 All menu commands that build menus of Message Areas to switch 
  5007.                 to will not display those that are disabled. 
  5008.  
  5009.                 The  next/previous  area  commands will similarly  jump  over 
  5010.                 these areas. 
  5011.  
  5012.                 Only  3 things work:  the Message Area toggle menu will  show 
  5013.                 them, login mail read will allow the user to read messages in 
  5014.                 these areas, and the "SelM _#"  command also works (eg. "SelM 
  5015.                 _3").    This  list  of  can-do stuff is  the  same  for  SL-
  5016.                 restricted message areas. 
  5017.  
  5018.                 This "disappearing" is done because that is assumed to be the 
  5019.                 way the user wanted it when they chose to toggle inactive the 
  5020.                 areas.  Out of sight, and out of mind. 
  5021.  
  5022.                                                                          -105-
  5023.  
  5024. PSEUDO-AI       The Pseudo-AI can only send private messages (E-Mail)  in and 
  5025.                 out of the Private Mail base, number 001. 
  5026.  
  5027.                 Any  messages  redirected from the AI to the sysop go to  the 
  5028.                 sysop.
  5029.  
  5030.                 All software  generated messages (such as  AI's  "Hello",  or 
  5031.                 Return  Receipts)  have their "kill when received"  Attribute 
  5032.                 ON.    This  means that when the message is  read,   it  will 
  5033.                 automatically  be  deleted.   That is,  the AI  automatically 
  5034.                 cleans  up  after itself (a lot of users don't  delete  their 
  5035.                 mail).   But the messages the AI sends are every bit real and 
  5036.                 normal. 
  5037.  
  5038.                 Beyond messages,  however,  the Pseudo-AI is the "smarts"  in 
  5039.                 the  program.   When a user doesn't have to do something that 
  5040.                 he normally would do, the AI is said to have done it for him. 
  5041.  
  5042.                                                                          -106-
  5043.  
  5044. MINUTES         There  are  3 types of time maintenance minutes.   There  are 
  5045.                 Access Minutes, Download Minutes, and uploading. 
  5046.  
  5047.                 Uploading  is  easy to understand:  no time is  reduced  from 
  5048.                 anywhere  during uploading,  and they may even  get  Download 
  5049.                 Minutes if you have auto-crediting for the uploads ON. 
  5050.  
  5051.                 Download minutes are just that:  minutes a user is allowed to 
  5052.                 spend time downloading.  This is reset each day to the values 
  5053.                 specified for their security level.   This value is also used 
  5054.                 to determine the maximum amount of time a user may spend in a 
  5055.                 door  per day.   For that reason, they may be referred to  as 
  5056.                 Download/Door minutes. 
  5057.  
  5058.                 Access Minutes are everything else: putzing about on the BBS, 
  5059.                 reading messages, etc.  The kind of thing you usually want to 
  5060.                 give  users a lot of.  There are per-call and per-day  values 
  5061.                 for  this.    Uploading/downloading and dooring do not  count 
  5062.                 against these values. 
  5063.  
  5064.                 With high speed modems, download minutes don't really matter, 
  5065.                 and tend to act as merely door-access-limiting minutes. 
  5066.  
  5067.                 Download/Door  minutes  get  used up when downloading  or  in 
  5068.                 doors.   But first the "free"  minutes you give them each day 
  5069.                 is  used,   then  when  they have  exceeded  those  we  start 
  5070.                 subtracting  (permanently)  any "given"  minute credits  they 
  5071.                 had. 
  5072.  
  5073.                 When a user's minute-credits reach or exceed 32,767,  it will 
  5074.                 never  increase.   When  it reaches -32,767  it will  not  be 
  5075.                 reduced farther. 
  5076.  
  5077.                 Crediting  of download minutes for uploads is defined in  the 
  5078.                 protocol   definitions,   and  in  Settings:   Extended  File 
  5079.                 Crediting (for those who like exotic crediting schemes). 
  5080.  
  5081.                                                                          -107-
  5082.  
  5083. GROUPS          There  are  lots of groups with this software.    Groups  are 
  5084.                 good. 
  5085.  
  5086.                 The is grouping by security level.  You know all about this. 
  5087.  
  5088.                 Another is groups of users based on their name.   You do this 
  5089.                 in the sysop menu option:  Users:  Group Handler.  With these 
  5090.                 groups,   you are able to restrict access to both  files  and 
  5091.                 menu commands (the "ifGP"/"ifnG" commands). 
  5092.  
  5093.                 The  last user grouping is Linkages,  and is the least  used.  
  5094.                 Linkages  allow   multiple  users  to  maintain  common  file 
  5095.                 transfer statistics.  So that when one uploads, the other guy 
  5096.                 can make use of those credits for downloading.   This is done 
  5097.                 in  the  sysop  menu  option:  Linkages,   and  is  otherwise 
  5098.                 invisible.    It takes  effect when downloading--as the users 
  5099.                 statistics will appear  different  than if he were not linked 
  5100.                 with another user. 
  5101.  
  5102.                 A single name can be put into a group.  This allows you to do 
  5103.                 such things as limit a file,  or whole command operations, to 
  5104.                 a single person.   The IndividualANSIs system is particularly 
  5105.                 for single-user stuff as well. 
  5106.  
  5107.                 The other types of groups are groups of Message Areas,   File 
  5108.                 Areas,   and Doors.   These work like the user Group  Handler 
  5109.                 system, and have their own group management commands. 
  5110.  
  5111.                                                                          -108-
  5112.  
  5113. VOTING          The  voting questions are contained in the  VOTE.TXT.    This 
  5114.                 file is structured as follows: 
  5115.  
  5116.                   Number: total number of questions
  5117.                   Text: line 1                            ┐
  5118.                   Text: to line n: question text          │ a
  5119.                   Number: total number of options (x)     │ single
  5120.                   Text: line 1                            │ question
  5121.                   Text: to line x: options text           ┘
  5122.                   Text: line 1                            ┐
  5123.                   Text: to line n: question text          │ a
  5124.                   Number: total number of options (x)     │ single
  5125.                   Text: line 1                            │ question
  5126.                   Text: to line x: options text           ┘
  5127.                   Text: line 1                            ┐
  5128.                   Text: to line n: question text          │ ...
  5129.                   etc.
  5130.  
  5131.                 Or to simplify:
  5132.  
  5133.                   n                      <- Total number of questions.
  5134.                   Text Q1 Line1          <- Question 1, can be up to 14 lines.
  5135.                   Text Q1 Line2
  5136.                   3                      <- Number of options for question 1.
  5137.                   Option1                <- Each option.  Can have up to 7.
  5138.                   Option2
  5139.                   Option3
  5140.                   Text Q2 Line1          <- Question 3, can be up to 14 lines.
  5141.                   Text Q2 Line2
  5142.                   4                      <- Number of options for question 3.
  5143.                   Option1                <- Each option.  Can have up to 7.
  5144.                   Option2
  5145.                   Option3
  5146.                   Option4
  5147.                   Text Q3 Line1          <- Question 3 on, same as before.
  5148.                   etc.
  5149.  
  5150.                 Example:
  5151.  
  5152.                   2                                  <-number of questions.
  5153.                   Do you like furry animals?         <-question #1
  5154.                   3                                  <-number of options.
  5155.                   Yes                                <-option 1/3
  5156.                   No                                 <-option 2/3
  5157.                   Yes when they are in a zoo.        <-option 3/3
  5158.                   Do you like the great outdoors?    <-question #2
  5159.                   4                                  <-number of options.
  5160.                   Yes, I visit them a lot.           <-option 1/4
  5161.                   Yes, I have a garden.              <-option 2/4
  5162.                   Yes, I have a plant at the office. <-option 3/4
  5163.                   No, burn it down.                  <-option 4/4
  5164.  
  5165.                                                                          -109-
  5166.  
  5167.                 You  may only have a maximum of 7 of your own  options for  a 
  5168.                 user  to select from.   But the  software  also  provides  an 
  5169.                 "No Opinion"   and "Other"  (the default)  options  for  each 
  5170.                 question.  Giving you up to 9 possible answers.
  5171.  
  5172.                 The "No Opinion"  option is the same as not voting--and  will 
  5173.                 result  in the question repeatedly coming up (next call)   if 
  5174.                 the  voting  is  is  being  done at  login  (mandatory/forced 
  5175.                 voting).  "No Opinion" is not considered a real vote,  and so 
  5176.                 is not graphed. 
  5177.  
  5178.                 When  a  user  chooses "other"  (the  final  voting  question 
  5179.                 option), they are prompted to enter text describing what they 
  5180.                 mean.  This can sometimes be a simple option you neglected to 
  5181.                 include,  or a whole complex belief idea.   this text is then 
  5182.                 sent to the sysop as a message from the AI.  You may then use 
  5183.                 their  answer  to  decide if the  voting  options  need  more 
  5184.                 options. 
  5185.  
  5186.                 When an option's text runs into  the graph,  you will need to 
  5187.                 shorten the option's text.
  5188.  
  5189.                 The graph shows all options except "No Opinion".
  5190.  
  5191.                 The  graph  automatically re-size's itself between  50%   and 
  5192.                 100%--to maximize graphic variability. 
  5193.  
  5194.                 Deleting  a  voting question is a bit  tricky.    You  cannot 
  5195.                 simply  delete  a  question unless it is the very  last  one.  
  5196.                 This  is because if you did simply delete it,  all the others 
  5197.                 would  move  up  one--and all the  user  records  (where  the 
  5198.                 results  are  stored)   would  have  results  for  the  wrong 
  5199.                 question. 
  5200.  
  5201.                 So when you want to delete a question,  you should first come 
  5202.                 up  with a question to replace it with (and change VOTING.TXT 
  5203.                 with  this  new  question).   Then go to the sysop  menu  and 
  5204.                 select  "Reset  Voting Question",  and  then  "Update  Stats" 
  5205.                 ("Update  Stats"  will reset that voting question's totals to 
  5206.                 zero). 
  5207.                 
  5208.                                                                          -110-
  5209.  
  5210. DOORS           A  door program is any program you temporarily  pass  control 
  5211.                 too.  The key word is "control".  Simply shelling and running 
  5212.                 programs  like  DSZ.EXE or PKZIP.EXE is not dooring to  those 
  5213.                 programs. 
  5214.                 
  5215. Defining        Use "Door Maintenance" from the sysop menu to maintain doors. 
  5216.                 This  is a defining database,  it has nothing to do with  the 
  5217.                 menu commands.  It creates "door objects" which the door menu 
  5218.                 commands can use to actually execute doors. 
  5219.  
  5220.                 The  whole door system works very similarly to the File  Area 
  5221.                 and  Message Area systems.   The menu commands work are quite 
  5222.                 alike. 
  5223.  
  5224.                 Doors consist of the following fields:
  5225.  
  5226.                 Access Time (start and end)
  5227.  
  5228.                   Access to this door is allowed between, and including,  the 
  5229.                   times supplied  here.   If the two values are equal,   then 
  5230.                   access to the door is allowed during all 24 hours. 
  5231.  
  5232.                   When using the "DOOR" and "DOOR _g##" commands, if the door 
  5233.                   is  inaccessible  at that time,  it is not included on  the 
  5234.                   menus. 
  5235.  
  5236.                 Maximum time allowed in door
  5237.                   
  5238.                   The maximum number of minutes a user is allowed in the door 
  5239.                   per door  access.   The door handles this,  so it is by  no 
  5240.                   means  guaranteed.   Use some high number (like  999)   for 
  5241.                   unlimited access time. 
  5242.                   
  5243.                   If the user's "download minutes"  is less than this amount, 
  5244.                   then their "download minutes" amount is used instead.  That 
  5245.                   is why they are called Download/Door minutes. 
  5246.  
  5247.                   A zero value will still execute the door (it is always  the 
  5248.                   door's  responsibility  to guard the time)  but  if  it  is 
  5249.                   handled properly by the door program, they will not be able 
  5250.                   to use the door program. 
  5251.  
  5252.                   You'll  learn  quickly  to hate doors that  have  no  time-
  5253.                   limiting code. 
  5254.  
  5255.                 Logging type
  5256.                   
  5257.                   0 = none
  5258.                   9 = everything the door program has
  5259.                   1 to 8 are somewhere in between (door program defines,  you 
  5260.                   should look at  the door program's documentation  to see if 
  5261.                   it supports this capability). 
  5262.  
  5263.                                                                          -111-
  5264.  
  5265.                 Minimum drive space needed
  5266.                   
  5267.                   The  minimum drive space (in bytes)  that the door needs on 
  5268.                   the drive to run.  Usually this will be very small.  If you 
  5269.                   want to use 0,  you should be sure the door program updates 
  5270.                   no  files (including the door-exit files).   2048  will  be 
  5271.                   fine  for most doors,  but some may need a lot more if they 
  5272.                   need to update large data files (example,  a  daily packing 
  5273.                   would  need at least a megabyte--probably 2 or 3).   So  it 
  5274.                   varies  widely,  which is why this field is here--the  door 
  5275.                   program  will  not  be  run  if there is not at least  this 
  5276.                   amount of drive space. 
  5277.  
  5278.                 Door-Op
  5279.                   
  5280.                   Who is to be the door-sysop for this door.   Only this name 
  5281.                   will get sysop treatment from the door program. 
  5282.  
  5283.                 Path
  5284.                   
  5285.                   Drive\path  specification of the door  program.    Example: 
  5286.                   C:\BBS\DOORS\BRE  or  C:\BBS\DOORS\BRE\  or E:\  etc.    It 
  5287.                   should contain the path of the door programs' files.  Where 
  5288.                   the door is on your hard disk.
  5289.  
  5290.                   This  field is the drive that is checked to determine  that 
  5291.                   there  is enough space.   If empty,  no space  checking  is 
  5292.                   done. 
  5293.  
  5294.                   This field is almost never empty.
  5295.  
  5296.                 Execution
  5297.  
  5298.                   Filename  and  command line to execute the door.   If  your 
  5299.                   door  program  is  at C:\BBS\DOORS\ABC.EXE  you  would  put 
  5300.                   C:\BBS\DOORS\ above and ABC.EXE here. 
  5301.  
  5302.                   Command lines are of the form:
  5303.                     
  5304.                     ABC.EXE %N %D\ABC.CFG /a /k
  5305.  
  5306.                   Where you are mixing the doors' "%"  commands with whatever 
  5307.                   command line commands the door program wants. 
  5308.            
  5309.                   The following "%"  codes are expanded  when  found  in  the 
  5310.                   execution line: 
  5311.  
  5312.                     %P  Comm port (1..n) being used.
  5313.                     %N  Node (1..n) being used.
  5314.                     %B  Baud rate (2400, 4800, 9600, 14400, 19200, 38400) of 
  5315.                         user (actually it's of your computer<->modem 
  5316.                         connection, but it is what door programs want).
  5317.  
  5318.                                                                          -112-
  5319.  
  5320.                     %D  Path to current door's directory (what you specified
  5321.                         in Path above).  No trailing slash is added.
  5322.                     %T  Max minutes (1..n) allowed in door.
  5323.                     %W  User's name (spaces converted to "_").
  5324.                     %X  User's name (spaces kept intact).
  5325.  
  5326.                     Example:  ABC.EXE /NODE=%N /CFG=ABC.CFG
  5327.  
  5328.                     Note: "%P%P%P" expands to "111" but "%P %P %P" is "1 1 1" 
  5329.                     (if comm  port = 1 of course).   That is,  no  leading or 
  5330.                     trailing  spaces  are added when substituting  for  these 
  5331.                     codes. 
  5332.  
  5333.                     Most  doors will accept a filename in the command line to 
  5334.                     mean  a file in the current directory (the  directory  in 
  5335.                     which the door program resides).   So it is rare that you 
  5336.                     will ever need %D or any path in the command line. 
  5337.  
  5338.                     These codes  are  the same as used by  protocol execution 
  5339.                     lines.   The door program will decide which ones you will 
  5340.                     need to use. 
  5341.  
  5342.                 Title
  5343.  
  5344.                   The title is displayed for any internally generated 
  5345.                   selection menus.
  5346.  
  5347.                 Exit Info Attributes
  5348.  
  5349.                   These  are used to tell the software what type of door exit 
  5350.                   file  the door wants,  and whether we should do a full exit 
  5351.                   from the BBS or not. 
  5352.  
  5353.                   The  vast majority of door programs assume a BBS is just  a 
  5354.                   dumb front end.   And they go into great detail about batch 
  5355.                   files to run their programs, and configuration setups, etc.  
  5356.                   Ignore it all!   Never, ever,  give a door program any path 
  5357.                   other than that of its own directory (eg. BBS\DOORS\ABC). 
  5358.  
  5359.                   The  only  exception  to this rule to  maybe  give  it  the 
  5360.                   location  of your Callers Log so it can log some sysop info 
  5361.                   for you (rare). 
  5362.  
  5363.                   This software is smart.  It not only exits itself into that 
  5364.                   door  programs  directory,   but also  puts  the  door-exit 
  5365.                   file(s)   in that directory as well.   The directory we  do 
  5366.                   this with is whatever you put in the Path field above. 
  5367.  
  5368.                   The following are the Door Exit Attributes:
  5369.  
  5370.                   1  This produces a DORINFOx.DEF door-exit file.  Also known 
  5371.                      as  "RBBS"  type door-exit file.   Almost all your doors 
  5372.  
  5373.                                                                          -113-
  5374.  
  5375.                      will  use this.   Only the older door programs may  need 
  5376.                      something else. 
  5377.  
  5378.                   2  This produces a DOOR.SYS door-exit file.   Also known as 
  5379.                      "Gap" type door-exit file. 
  5380.  
  5381.                   3  This produces a CHAIN.TXT door-exit file.  Also known as 
  5382.                      "WWIV" type door-exit file. 
  5383.  
  5384.                   4  This produces a SFDOORS.DAT door-exit file.   Also known 
  5385.                      as "SpitFire" type door-exit file. 
  5386.  
  5387.                   5  This produces a PCBOARD.SYS door-exit file.   Also known 
  5388.                      as "PC-Board 14.x" type file. 
  5389.  
  5390.                   6  This produces a PCBOARD.SYS door-exit file.   Also known 
  5391.                      as "PC-Board 12.x" type file. 
  5392.  
  5393.                   7  This produces a CALLINFO.BBS door-exit file.  Also known 
  5394.                      as "WildCat! 2.x" type file. 
  5395.  
  5396.                   A  Normally   we  shell-to-dos  to  run  a  door   program.  
  5397.                      However,   if this Attribute is ON,  we do a full  exit.  
  5398.                      Taking the entire BBS out of memory and giving it to the 
  5399.                      door program to use. 
  5400.  
  5401.                      If, when testing a door program, you get "Cannot execute 
  5402.                      filename",   then  this error means that there  was  not 
  5403.                      enough  available RAM to run the program.    You  should 
  5404.                      then set this Attribute ON.   You should always at least 
  5405.                      try  a door program without this Attribute--the size  of 
  5406.                      the .EXE is not a good indicator as to how much memory a 
  5407.                      program uses.  Most programs will give the quick "cannot 
  5408.                      execute"  error,  but some will work fine,  and then get 
  5409.                      buggy after using it for a while--so you should set this 
  5410.                      Attribute ON for them as well. 
  5411.  
  5412.                      See SHROOM.HLP for a swap-to-disk/shrink method you  can 
  5413.                      also use. 
  5414.  
  5415.                   Normally you just set one of 1-7 ON.
  5416.  
  5417.                   Technical  note:   The software will not read back  in  the 
  5418.                   above door-exit files.   However,  it always writes out its 
  5419.                   own  (JDRBBS##.DEF)  and will read that back in--adjust the 
  5420.                   users  record  for  any  changes.    See  TECHDOCS.DOC  and 
  5421.                   DOORS.DOC. 
  5422.  
  5423.                 Access Security Level (minimum and maximum)
  5424.  
  5425.                   If the user has a Security Level less than the minimum,  or 
  5426.                   greater than the maximum,  specified values here, they will 
  5427.                   not be able to run the door program. 
  5428.  
  5429.                                                                          -114-
  5430.  
  5431.                   For  "DOOR",   and "DOOR _g##",  these  inaccessible  areas 
  5432.                   simply are not displayed.  For "DOOR _#" commands, the door 
  5433.                   is not executed. 
  5434.  
  5435. Menus           To call a door program from a menu,  you use the "DOOR"  menu 
  5436.                 command. 
  5437.  
  5438.                 This command has 3 formats: DOOR, DOOR _g##, and DOOR _#.
  5439.  
  5440.                 "DOOR"   is  the  easiest to use.   It simply  brings  up  an 
  5441.                 internal  menu of all accessible doors.   The user selects  a 
  5442.                 door program,  we execute it,  then we return to the original 
  5443.                 menu.  Doors to which the user has no SL are not listed. 
  5444.  
  5445.                 "DOOR  _g##"  is similar to just "DOOR".   But instead of all 
  5446.                 doors, we use a pre-created group of doors.  See Doors: Group 
  5447.                 Handler  in the sysop menu for more information.    The  menu 
  5448.                 created  is an internally generated one,  and doors that  the 
  5449.                 users does not have the proper SL to access are not listed. 
  5450.  
  5451.                 Both  of the above are pretty easy,  and should be used while 
  5452.                 you are getting your doors organized and set up.   Once  that 
  5453.                 is  done,  many sysops like to design their  own  door-access 
  5454.                 menus. 
  5455.  
  5456.                 For that,  we have the "DOOR _#"  command.  Where "#"  is the 
  5457.                 door  entry  number (from Door Maintenance)  that  we  should 
  5458.                 execute.  To use these commands, you first create one or more 
  5459.                 menu commands using "DOOR _#".  For example: 
  5460.  
  5461.                    "dor1" = "DOOR _1"
  5462.                    "dor2" = "DOOR _30"
  5463.                    "dor3" = "DOOR _5"
  5464.                 
  5465.                 You  then create an ANSI menu with the new commands  ("dor1", 
  5466.                 "dor2", "dor3")  or put one or more of these commands onto an 
  5467.                 already existing menu. 
  5468.  
  5469.                 Note:  the "DOOR" menu command above is NOT the same thing as 
  5470.                 the  very similar "Door"  menu command.   "Door"  is a quicky 
  5471.                 shell-to-dos-and-run-something, and does not create door exit 
  5472.                 files nor track time/usage stats. 
  5473.                 
  5474.                 See  DOORMENU.ZIP for information on implementing  the  pull-
  5475.                 down door-access menus I use on Immortality.   These are very 
  5476.                 tricky,  and you should have mastered the menu system  before 
  5477.                 thinking about implementing it. 
  5478.                 
  5479. Time            Like file transfers,  time spent in doors is reduced from the 
  5480. Maintenance     users' daily download minutes available.
  5481.  
  5482.                 A user may call a door as many times as they want.   You  may 
  5483.                 set a "maximum time"  a user may spend in a door per session, 
  5484.  
  5485.                                                                          -115-
  5486.  
  5487.                 but  since  a  user may use the door  any  number  of  times, 
  5488.                 ultimately they are limited by their total time available. 
  5489.  
  5490.                 Before calling the door,  the software will verify that  they 
  5491.                 have time available. 
  5492.                 
  5493.                 Technical  note:   A  door program gives minute-credits,   or 
  5494.                 removes them,  for reward or loss,  respectively.   If a door 
  5495.                 program you are installing has the ability to define the rate 
  5496.                 of exchange (example:  1  minute-credit = $100,000)  then set 
  5497.                 this value such that the highest a user would ever attain (in 
  5498.                 total) does not exceed 32,000 and the lowest they ever attain 
  5499.                 (in total)  is not below -32,000.   Minute-credits should not 
  5500.                 casually  be  played around with in the doors,   they  should 
  5501.                 represent seriously high goals in the game.  A gambling door, 
  5502.                 for  example,  should not use 1:1  minute-credit ratios,  but 
  5503.                 rather  the  byte part of the exchange rate  ($1,000,000   or 
  5504.                 $10,000.00).   Currently I know of no program that makes  use 
  5505.                 of this. 
  5506.  
  5507.                 See also: MINUTES
  5508.  
  5509. Misc.           I have been  testing  some  of the  door  programs  with this 
  5510.                 software,  see the file DOORS.DOC for helpful information  on 
  5511.                 setting up various door programs. 
  5512.  
  5513.                 To speed up the loading of doors,  use PKLite  or  a  similar 
  5514.                 utility  on  the .EXE and .COMs.   However,  if you  get  the 
  5515.                 message  "has overlays,  continue?"  then answer  "No"--these 
  5516.                 programs, like JDRBBS.EXE itself, have internal overlays that 
  5517.                 cannot be accessed if they are compressed. 
  5518.  
  5519.                 When a door is run as an event,  no time checking/handling is 
  5520.                 done.  Since there is no user. 
  5521.  
  5522.                 If  you set something up wrong,  the good door programs  will 
  5523.                 tell you what was wrong. 
  5524.  
  5525.                 Setting  up  a single DAILY.BAT file which contains  all  the 
  5526.                 door-related  events to run at midnight is a lot easier  then 
  5527.                 setting  up different commands for each event.   Using "Door" 
  5528.                 to  call  these maintenance programs (or this DAILY.BAT)   is 
  5529.                 also a lot easier than using "DOOR" for the same thing. 
  5530.  
  5531.                                                                          -116-
  5532.  
  5533. PROTOCOLS       You   can  change  (add/remove/modify)   protocols  from  the 
  5534.                 Protocols option on the sysop menus. 
  5535.                 
  5536.                 Some  protocols,  such as xmodem,  you cannot use to upload--
  5537.                 because  they  stop  and ask you (the sysop/console)   for  a 
  5538.                 filename to use. 
  5539.  
  5540.                 For  bidirectional protocols,  you must use the  "BiMd"   and 
  5541.                 "HSLk"    menu   commands   to  get  BiModem   and   HS/Link, 
  5542.                 respectively.    This  is  necessary  because  otherwise  the 
  5543.                 software  will  only look for either downloads  or  uploads--
  5544.                 these  commands  tell it to look for both.   However,   their 
  5545.                 definitions (command lines, etc.)  are still defined like any 
  5546.                 other protocol. 
  5547.  
  5548. Defining        When we make references to the "log entry" below, we mean the 
  5549.                 log the protocol itself produces to tell us what happened.
  5550.                 
  5551.                 Protocols have the following fields:
  5552.  
  5553.                 Defining letter
  5554.                 
  5555.                   This  is  the letter the user sees for "protocol"  in their 
  5556.                   Profile.    If you use two letters that are the same,   you 
  5557.                   should be sure that their SL ranges do not conflict. 
  5558.  
  5559.                   The  very  first protocol is known as the default protocol, 
  5560.                   it is given when the user's selected protocol (somehow) has 
  5561.                   no allowable match.   You may reassign the default protocol 
  5562.                   by using a defining letter of "*". 
  5563.  
  5564.                 Access Security Level (minimum and maximum)
  5565.                   
  5566.                   The  minimum and maximum Security Levels provide a range in 
  5567.                   which the user must be to be able to use this protocol.  If 
  5568.                   they  are  less  than the minimum,   or  greater  than  the 
  5569.                   maximum,   specified then they will not be able to use  the 
  5570.                   protocol. 
  5571.  
  5572.                   For  the "Select Protocol"  command,  it will  not  display 
  5573.                   protocols to which the user does not have SL access. 
  5574.                   
  5575.                   You  can  temporarily disable protocols  by  setting  their 
  5576.                   minimum  value to something very high,  like 32000.  It  is 
  5577.                   easier  to  just  disable a protocol then delete  it,   and 
  5578.                   decide later on that you want it back. 
  5579.  
  5580.                   Using a min SL and  a max SL allows you to direct different 
  5581.                   flavors of the same protocol to different users.   Example, 
  5582.                   in my set up, level 5 users do not get to do Zmodem resume-
  5583.                   later upload aborts,  and so I use a DSZ line that does not 
  5584.                   save incomplete files for that Security Level. 
  5585.  
  5586.                                                                          -117-
  5587.                 
  5588.                   Example,   DSZ uploading:  "pR1"  means "delete  incomplete 
  5589.                   files," and "-r" (eg. "-mrS") means "allow them to complete 
  5590.                   their partial uploads.  These you should definitely use for 
  5591.                   lower-SL  users,  and allow for higher SL users.    Because 
  5592.                   lower  SL  users will cause troubles by uploading duplicate 
  5593.                   files--and  the  protocol  will  overwrite  your  old  ones 
  5594.                   without these extra parameters!  But at the same time,  one 
  5595.                   assumes the smarter higher-SL users know what they're doing 
  5596.                   (and that they can lose their higher-SL by doing this file-
  5597.                   replace  trick).    That they can be trusted that what they 
  5598.                   upload  is important and should not be hassled by having to 
  5599.                   resend the whole thing when it only needs to be completed. 
  5600.  
  5601.                   If  the  Maximum  SL value is zero,  then  it  is  ignored.  
  5602.                   Allowing   any  SL  once  the  minimum  SL  requirement  is 
  5603.                   satisfied. 
  5604.  
  5605.                 Success UL letter
  5606.                   
  5607.                   This  is  the  letter,  when found in the log  file,   that 
  5608.                   declares that the upload was successful. 
  5609.  
  5610.                 Fail UL letter(s)
  5611.                   
  5612.                   These  are the letters,  when found in the log file,   that 
  5613.                   declare the upload a failure. 
  5614.  
  5615.                   See Fail DL letter(s) as well.
  5616.  
  5617.                 Success DL letter
  5618.                   
  5619.                   This  is  the letter,  when found in the  log  file,   that 
  5620.                   declares that the download was successful. 
  5621.  
  5622.                 Fail DL letter(s)
  5623.                   
  5624.                   These  are the letters,  when found in the log file,   that 
  5625.                   declare the download a failure. 
  5626.  
  5627.                   Users  do not loose any download minutes or download  bytes 
  5628.                   when  a  download fails.   We then they continue-later  the 
  5629.                   aborted download then their records are adjusted properly. 
  5630.  
  5631.                   However,   if  you're  having trouble  with  abusive  users 
  5632.                   downloading  90%   of GIFs,  then aborting,  one  trick  to 
  5633.                   stopping  these people is to remove the "E"  from  the  DSZ 
  5634.                   protocols for Fail DL Letters,  and put it into Success  DL 
  5635.                   Letter.    Thus,   aborted downloads will also have  credit 
  5636.                   reduced.    However,  this should not be done lightly,   as 
  5637.                   regular  users who really do have a problem with a download 
  5638.                   will not like it costing them double-download credits. 
  5639.  
  5640.                                                                          -118-
  5641.  
  5642.                   The  solution I like to use is to wait until they  log  off 
  5643.                   (or  if I notice lots of E's for DSZ transfer lines in  the 
  5644.                   log)   and then simply add those bytes to that users  Bytes 
  5645.                   Downloaded.   Thus, when he next logons,  he see's that the 
  5646.                   aborting trick did not work. 
  5647.  
  5648.                   Technical note:  The following is fairly detailed,  and you 
  5649.                   may not ever need it (recommend you read it only if you are 
  5650.                   having troubles detecting bad uploads).
  5651.  
  5652.                     In  order  for the to correctly identify  bad  transfers, 
  5653.                     either this field must be one character, or the pass/fail 
  5654.                     determining word must be one character.   Example:  DSZ's 
  5655.                     pass/fail word is either "E"  or "L"--one character.   So 
  5656.                     you  can have up to 3 characters here ("LE").    If  some 
  5657.                     other protocol has "Bad"  for failed transfers and "Good" 
  5658.                     for successful transfers, then you must put a "B"  or "a" 
  5659.                     here,  not "Bad",  not "Ba",  not more than one character 
  5660.                     because  the pass/fail determining word is more than  one 
  5661.                     character. 
  5662.  
  5663.                     To  simplify:  the software looks for the "Fail  letters" 
  5664.                     inside the "pass/fail determining word" and looks for the 
  5665.                     "pass/fail  determining word"  inside the "Fail Letters".  
  5666.                     If either of these cases come up true,  then the transfer 
  5667.                     is determined to have failed. 
  5668.  
  5669.                     This allows me to find: "L" or "E"--rather than trying to 
  5670.                     find "LE" in the pass/fail word.  So, while "LE" will not 
  5671.                     be found in "E",  "E" will be found in "LE".  If you have 
  5672.                     "LE"  and the protocol leaves multiple letters,  such  as 
  5673.                     "Lbad",  then it will not find the "L"--since either "LE" 
  5674.                     will not be found in "Lbad" and "Lbad"  will not be found 
  5675.                     in "LE". 
  5676.  
  5677.                 Pass/fail determining word
  5678.                     
  5679.                   This  is the "word number"  of the letter  that  determines 
  5680.                   whether  the  transfer was successful or  not.    The  word 
  5681.                   number of the log entry. 
  5682.  
  5683.                   Words are defined as  text having a least one space between 
  5684.                   them.   Example: "A B C" has 3 words,  but "A BC"  has only 
  5685.                   two.   If the protocol produces entries that are some times 
  5686.                   blank (rather than,  say,  a  zero), then you cannot use it 
  5687.                   (unless  the  trouble  occurs  after  the  determining  and 
  5688.                   pathname words). 
  5689.  
  5690.                 Pathname word-number
  5691.                   
  5692.                   This  is the "word number"  of the transferred pathname  in 
  5693.                   the log file. 
  5694.  
  5695.                                                                          -119-
  5696.                     
  5697.                   The pathname need not contain a full file path.   It should 
  5698.                   at least contain the file name transferred. 
  5699.  
  5700.                 Percentage of time to give
  5701.                   
  5702.                   This  is the percentage of upload time (as determined  from 
  5703.                   2400 baud) that you should give in minute-credits. 
  5704.  
  5705.                   No   time  is  taken  off  for  uploading,    except   with 
  5706.                   bidirectional protocols. 
  5707.  
  5708.                   This credit is given them in the form of Minute-Credits and 
  5709.                   is done at the time the file is validated or whatever other 
  5710.                   rules about credit-giving you have.  Only minutes are given 
  5711.                   (back), not bytes.
  5712.  
  5713.                   Bytes for upload credits is always the same:  simply adding 
  5714.                   the  size  of the file to the user's uploaded-bytes  total.  
  5715.                   The amount this eventually converts into depends solely  on 
  5716.                   their  ratios  for  their Security Level  at  the  time  of 
  5717.                   consideration (ie. when downloading). 
  5718.  
  5719.                 Description
  5720.                   
  5721.                   This is the text the user sees when selecting and using the 
  5722.                   protocol. 
  5723.  
  5724.                 Log File Pathname
  5725.                   
  5726.                   This  is  the full path and file name of the file in  which 
  5727.                   the protocol keeps the log of what happens. 
  5728.  
  5729.                 Upload Execution
  5730.                   
  5731.                   This is the execution line we  should use to handle uploads 
  5732.                   to the BBS. 
  5733.                     
  5734.                   In  both execution lines,   you  should  include  the  full 
  5735.                   pathname  of  the  protocol  driver being used.    Example, 
  5736.                   "C:\BBS\DSZ.EXE". 
  5737.  
  5738.                   The following  "%"  codes are expanded  when  found  in the 
  5739.                   upload/download execution lines: 
  5740.  
  5741.                     %P  Comm port (1..n) being used.
  5742.                     %L  Transfer pathnames file to use (usually FNAMES.CTL).
  5743.                     %B  Baud rate (2400, 4800, 9600, 14400, 19200, 38600) of 
  5744.                         user.
  5745.                     %N  Node (1..n) being used.
  5746.                     %U  Path to currently selected File Area.
  5747.                     %F  For first filename (of a download session).
  5748.  
  5749.                                                                          -120-
  5750.  
  5751.                   Note:  "%P%P%P" expands to "111" but "%P %P %P" is "1 1  1" 
  5752.                   (if  comm  port = 1 of course).   That is,   no leading  or 
  5753.                   trailing  spaces  are  added when  substituting  for  these 
  5754.                   codes. 
  5755.  
  5756.                 Download Execution
  5757.                   
  5758.                   This  is  the  execution  line  we  should  use  to  handle 
  5759.                   downloads from the BBS. 
  5760.  
  5761.                   See Upload Execution above for the "%" codes allowed.
  5762.  
  5763.                   For batch  download protocols,  you must use protocols that 
  5764.                   accept  the  "@<listfile>"   command  line   order.    This 
  5765.                   "<listfile>"    is  FNAMES.CTL  which  contain  a  list  of 
  5766.                   pathnames to send.  Typically, the command line will have a 
  5767.                   "@%L" to tell it what files to download. 
  5768.  
  5769.                   For non-batch  download protocols,  you must use  the "%F".  
  5770.                   This  takes the first entry in FNAMES.CTL and replaces  the 
  5771.                   %F  with  it.    Allowing you to send  that  one  filename.  
  5772.                   Protocols which can handle the sending of only one filename 
  5773.                   are not recommended. 
  5774.  
  5775.                 The  program  is set up to use "DSZ.EXE"   for  its  protocol 
  5776.                 driver.   To change this to a different protocol driver, such 
  5777.                 as GSZ, you have two methods: easy and hard.  The easy way is 
  5778.                 to just rename it to DSZ (this only works if the command line 
  5779.                 parameters  follow those of DSZ (which GSZ does),  and you do 
  5780.                 not need to use DSZ in another protocol).  The hard way is to 
  5781.                 go into Protocols and change each DSZ entry by hand, and then 
  5782.                 go into Executable Lines  and  change  those DSZ.EXE entries.  
  5783.                 Renaming  GSZ to DSZ.EXE works just fine.
  5784.  
  5785.                 I have not tested the other protocol driver programs (such as 
  5786.                 SZMODEM,   etc.)   for  this simple renaming trick,   but  it 
  5787.                 probably will work.   Although some,  like IceZmodem,  have a 
  5788.                 non-DSZ compatible command line, and so either need their own 
  5789.                 Protocols  entry,   or  for you to modify  your  current  DSZ 
  5790.                 command lines. 
  5791.                 
  5792.                                                                          -121-
  5793.  
  5794. MENU SYSTEM     Ah,  the menu system.  The key to JDR_BBS.  It's sneaky,  may 
  5795.                 even appear hard at first.   But it is very, very,  powerful.  
  5796.                 It will be a long time before you master it completely,   but 
  5797.                 you will be able to master much of it quickly. 
  5798.                 
  5799.                 This  is the KEY!   Understand this,  and you will understand 
  5800.                 the whole software package.   Everything makes sense when you 
  5801.                 master this, the whole thing becomes a thing of beauty. 
  5802.  
  5803.                 Don't fight it, it is really not that tough.
  5804.  
  5805. Definition      What is a menu?
  5806.  
  5807.                 In  the  "good  ole days"  a  menu was something the  program 
  5808.                 itself took care of.  The programmer(s) decided how it was to 
  5809.                 look and which commands were to be put on it. 
  5810.  
  5811.                 More  recently,  this system has evolved to where we  use  an 
  5812.                 "image"  (such as an ANSI)  for the menu display.    However, 
  5813.                 many  programs still limited the commands that you could have 
  5814.                 on which menus. 
  5815.                 
  5816.                 Now,   we  are in an age of much more powerful menu  systems.  
  5817.                 Where   the  actual  display  the  user  see's  is  of  minor 
  5818.                 importance.    All the work is done behind the  scenes:   the 
  5819.                 sysop  configures  for hot-keys to use,  Security  Levels  to 
  5820.                 block/allow  commands  and images,  commands that go to  sub-
  5821.                 programs,   scripts/command  builders,   and  all  sorts   of 
  5822.                 combinations. 
  5823.                 
  5824.                 This  flexibility  allows  sysops to change  software without 
  5825.                 having to change too much of the look and feel of their BBS. 
  5826.  
  5827.                 In this software, menus are: zero or more images grouped with 
  5828.                 zero  or  more commands.   Menu's are referenced by  a  three 
  5829.                 character ID,  known as the Menu ID.  Typically, a  menu will 
  5830.                 be a single ANSI with 3 or more commands on it. 
  5831.  
  5832.                 There are three parts to a menu: the image to display for it, 
  5833.                 the  commands  to use in it,  and  the  commands  themselves.  
  5834.                 Please  re-read  this.   Commands are like  objects--they  do 
  5835.                 nothing  until  put them on menus.   In this  software,   the 
  5836.                 "commands  to  use  on  a menu"  are not  equivalent  to  the 
  5837.                 "commands themselves".  They can be, and most often are,  but 
  5838.                 need not necessarily be, because they are built up from other 
  5839.                 commands.  As you shall see later, the Menu Command system is 
  5840.                 separate from the Menu system.
  5841.  
  5842.                 Most  everything with this software deals with objects.   You 
  5843.                 have databases full of object definitions.  Commands make use 
  5844.                 of these database objects,  but are themselves objects.   The 
  5845.                 menus make use of these command objects.   Each step  defines 
  5846.  
  5847.                                                                          -122-
  5848.  
  5849.                 the  direction and power the original object is molded  into.  
  5850.                 We  take data objects and route them,  mold them,  and  shape 
  5851.                 them,   until  they  are in a form  we  deem  acceptable  for 
  5852.                 callers. 
  5853.  
  5854.                 The  ANSI's and other forms of images (RIP,  GIP)  you  build 
  5855.                 outside the BBS software, using something like TheDraw.  Once 
  5856.                 you know what you are doing, you will find text editors, such 
  5857.                 as  PC-Write,  to be helpful as well to create,   edit,   and 
  5858.                 optimize your ANSI's. 
  5859.  
  5860. McEditor        For  this software,   creating your menu's involve using  the 
  5861.                 Menu Command Editor System, or McEditor. 
  5862.  
  5863.                 The following files are used by McEditor:
  5864.  
  5865.                   CMDS.DAT        --Contains all usable commands.
  5866.                   CATEGORY.DAT    --Contains information about which usable 
  5867.                                     command is in which category.
  5868.  
  5869.                   FX.TXT          --Special effects for menu's when a 
  5870.                                     selection is made.
  5871.  
  5872.                   BBS_CMDS.DAT    --Contains commands used in each menu.
  5873.                   MENUS.DAT       --Contains each menu.
  5874.  
  5875.                 FX.TXT is the only file you can edit yourself.   It  contains 
  5876.                 the  special  effects  strings that you can display  after  a 
  5877.                 caller  selects a command from your menus.   It is a standard 
  5878.                 text file.  See HELP\FX_TXT.DOC for more information. 
  5879.  
  5880.                 The remaining files McEditor handles.
  5881.  
  5882.                 CMDS.DAT  and  CATEGORY.DAT store the functional  information 
  5883.                 about  how  each command works.   These files are  stored  in 
  5884.                 BBS\GLOBAL\SYSTEM.  The bottom half of the McEditor screen is 
  5885.                 for editing this information.
  5886.  
  5887.                 BBS_CMDS.DAT  and  MENUS.DAT  store the information  for  the 
  5888.                 menus.    The top half of the McEditor screen is for  editing 
  5889.                 this  information.    These  files are stored  in  the  Style 
  5890.                 directory to which the menus apply, for example "1ST". 
  5891.                 
  5892.                 You can access McEditor in two ways: from the sysop menu,  or 
  5893.                 just hitting <ctrl>F2  nearly anywhere.   Designing menus can 
  5894.                 sometimes  get tricky--you literally  design yourself into  a 
  5895.                 hole sometimes.   For instance,  you make a change that stops 
  5896.                 your access to the sysop menu.  That is why the <ctrl>F2  key 
  5897.                 is there. 
  5898.  
  5899.                                                                          -123-
  5900.  
  5901.                 The McEditor screen looks something like so:
  5902.  
  5903.                   Menu ID: xxx          ANSI: x:\xxxxxx\etc.
  5904.                   ┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐
  5905.                   └─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘
  5906.                   ┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐
  5907.                   └─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘
  5908.  
  5909.                   Category: xxxxx
  5910.                   ┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐
  5911.                   └─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘
  5912.                   ┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐┌─┐
  5913.                   └─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘
  5914.  
  5915.                 There  is  not  that much to remember.    What  you  see  are 
  5916.                 actually two separate systems:  the top half of the screen is 
  5917.                 the  menu  system,  and the bottom half of the screen is  the 
  5918.                 command system. 
  5919.  
  5920.                 The whole system  is  an  "object oriented drag-and-drop menu 
  5921.                 command block-building system". 
  5922.  
  5923.                 You  can type "?"  to get the commands,  but they are  pretty 
  5924.                 straight forward:  arrow keys to move, <ins>  to create/edit, 
  5925.                 <del>  to delete,  <enter>  to pick up and drop down objects, 
  5926.                 <pgup> to move to previous category or menu,  <pgdn>  to move 
  5927.                 to next category or menu.   <esc> to quit. 
  5928.  
  5929.                 "H"   will  bring up the on-line docs for the menu  commands.  
  5930.                 You  can  also use <ctrl>F3  from most anywhere to  bring  up 
  5931.                 these docs. 
  5932.  
  5933.                 Use <left> and <right>  to move into the Menu ID and Category 
  5934.                 fields, <up> and <down> skip past them. 
  5935.  
  5936.                 The  "?"  brings up help (and used hot-keys)  when used on  a 
  5937.                 blank object.  When used on a non-blank object, it reports on 
  5938.                 the  contents of that object.   An object being a menu entry, 
  5939.                 or a category command (those boxes in the picture above). 
  5940.  
  5941.                 To make the commands a bit more readable, "?" will bring up a 
  5942.                 "human readable" form of the command as well. 
  5943.  
  5944.                 The  "/"   key  can  be  used  to  toggle  ON/OFF  continuous 
  5945.                 reporting.  When ON,  every object you move the cursor across 
  5946.                 will  have  its contents displayed--and the "?"  will display 
  5947.                 help  alone.    When OFF,  "?"  for help only works on  blank 
  5948.                 objects. 
  5949.  
  5950.                 When  <ins>   is  used while at the Menu ID  field,   or  the 
  5951.                 Category  field,  you are able to do a variety of things.  It 
  5952.                 lets you type something,  and then will ask you what you want 
  5953.  
  5954.                                                                          -124-
  5955.  
  5956.                 to do.   [Enter] alone will abort any operation.   Things you 
  5957.                 can  do include creating new menus/categories,  jumping to  a 
  5958.                 menu/category, duplicating, swapping, etc. 
  5959.  
  5960.                 You can move individual command  objects around:  simply move 
  5961.                 over what you want  to move, hit [Enter] to pick it up,  then 
  5962.                 move where you want to drop it,  and hit [Enter] again.   You 
  5963.                 can  use this to move commands between categories,   to  move 
  5964.                 menu  commands  between  menus,  and to  move  commands  from 
  5965.                 categories to menus.  It is easier than <ins>  which requires 
  5966.                 that you type in a cmd4 name. 
  5967.  
  5968.                 "@"  at the menu commands is useful as well.   Just do an "@" 
  5969.                 on  top of a menu command,  and it will locate for you  which 
  5970.                 category has that commands definition. 
  5971.                 
  5972.                 You can use "E"  to export menus or categories.   And "I"  to 
  5973.                 import  menus or categories previously exported (example:   a 
  5974.                 friend  gives  you a menu or menu  system  (Style\Language)). 
  5975.                 When  importing,  it puts the new stuff at the front of  what 
  5976.                 you  currently have (menus or categories).   When  exporting, 
  5977.                 only  menus  can be saved multiple per file.    The  type  of 
  5978.                 import (menu or category)  is automatically detected,  but to 
  5979.                 export,   you  hit "E"  on the menu or category you  wish  to 
  5980.                 export. 
  5981.  
  5982.                 It is easiest to just play around with it for awhile.  
  5983.  
  5984.                 Just remember that the bottom half defines commands,  and the 
  5985.                 top half uses those defined commands. 
  5986.  
  5987. Menus           Menus are made up of the following:  a Menu ID, a  menu ANSI, 
  5988.                 and the menu's commands. 
  5989.  
  5990.                 Each  "page"  for the top half of McEditor is for a different 
  5991.                 menu.  You can create as many of these menus as you want, and 
  5992.                 put whatever commands you want on them.   The software is  in 
  5993.                 no way locked down to the menus I have or the ANSI's I use. 
  5994.  
  5995.                 These "pages"  provide an interface between your commands and 
  5996.                 the user: in these "pages" we tell the software what the user 
  5997.                 sees (the ANSI),  we tell the software what the user can type 
  5998.                 (the hot-keys), and we tell the software what its supposed to 
  5999.                 do when a key is selected (the commands).   But it's still up 
  6000.                 to  you,   the  sysop,  to draw the ANSI's (with  TheDraw  or 
  6001.                 somesuch) and define the commands. 
  6002.  
  6003.                 While  I  always say ANSI here,  you can use  .RIP  and  .GIP 
  6004.                 screen images in place of the ANSI image. 
  6005.  
  6006.                 The menu ANSI can do all the smart-codes.  See ANSI.HLP. 
  6007.  
  6008.                                                                          -125-
  6009.  
  6010.                 While the ANSI is being displayed, and after it is displayed, 
  6011.                 the  software  will accept any valid hot-keys  for  the  menu 
  6012.                 commands.   The hot-keys available depends on the  users  and 
  6013.                 the hot-keys' Min SL and Max SL. 
  6014.  
  6015.                 You  can quickly turn a menu command ON/OFF by a Y/N for  the 
  6016.                 active field. 
  6017.  
  6018.                 The  command  itself must be a valid category command,  or  a 
  6019.                 ">xxx"  jump-to-menu command (which need not first be defined 
  6020.                 in the bottom half of McEditor). 
  6021.  
  6022.                 The  hot-key  can  be  any  keyboard  character.    Including 
  6023.                 numbers, and characters like "!@#$%?':,." 
  6024.  
  6025.                 The following are special.  They work as themselves, but also 
  6026.                 tell the software to accept special keys: 
  6027.  
  6028.                   hot-key       what to accept
  6029.  
  6030.                      ~             [Enter]
  6031.                      <           <left arrow>
  6032.                      >           <right arrow>
  6033.                      ^            <up arrow>
  6034.                      _           <down arrow>
  6035.  
  6036.                 If  no  "~"  is defined as a hot-key,  [Enter] normally  just 
  6037.                 redraws  the screen (unless pull-down/arrow menus  are  used, 
  6038.                 then it is used to select an option). 
  6039.  
  6040.                 Minimum SL and Maximum SL.  The user must have the minimum SL 
  6041.                 to execute the command.  They must also be less than or equal 
  6042.                 to  the maximum SL to execute the command.   If Maximum SL is 
  6043.                 zero,  then only the minimum SL is used for consideration. By 
  6044.                 using  upper and lower boundary SL's,  we are able to  define 
  6045.                 multiple  commands that use the same hot-key--they  could  be 
  6046.                 designed  to work differently for different SL ranges.   This 
  6047.                 is quite useful, and easier than separate menus. 
  6048.  
  6049.                 Special  effects  is text displayed after the user  hits  the 
  6050.                 hot-key and before the menu command itself is executed.   The 
  6051.                 special effects themselves (what is shown etc.)  is specified 
  6052.                 in the file FX.TXT. 
  6053.  
  6054.                 You can use "L" to switch between menu systems.  For example, 
  6055.                 to edit the "WW4"  menu system,  you would type "L"  then the 
  6056.                 path to the "WW4" dir: c:\bbs\node001\ww4.  McEditor defaults 
  6057.                 to whichever menu system you are currently logged in under. 
  6058.  
  6059.                 See DOORMENU.ZIP for a complex example about how to implement 
  6060.                 pull-down menus.   When using pull-down menus, -/+ also works 
  6061.                 to move between commands,  and [Enter] selects.   Even though 
  6062.  
  6063.                                                                          -126-
  6064.  
  6065.                 they  are called pull-down menus,  they can be of any  form--
  6066.                 they are just menus that user can move about the screen using 
  6067.                 the arrow keys. 
  6068.  
  6069.                 See also:  ANSI.HLP, STYLES\LANGUAGES
  6070.  
  6071. Command         First and foremost,  all commands are four letters.  But they 
  6072. Objects         may have parameters of variable size. 
  6073.                 
  6074.                 There  are  three types of commands:  "|###",   ">xxx",   and 
  6075.                 everything else. 
  6076.  
  6077.                 "|###"  are system-level notation--you should never use this, 
  6078.                 all  functional  commands  are built  upon  these  notational 
  6079.                 (core) commands.  These are known as "primitives". 
  6080.  
  6081.                 ">xxx"   is a "jump to menu xxx"  where "xxx"  is a Menu  ID.  
  6082.                 This  command changes the program flow to another menu.   The 
  6083.                 first  action  upon going to a new menu is  to  display  that 
  6084.                 menu's ANSI. 
  6085.  
  6086.                 Any other 4 letter command is a constructed command.  Created 
  6087.                 by  using the above commands,  and parameters for  the  above 
  6088.                 commands. 
  6089.  
  6090.                 Parameters  for any command always has a leading "_"   before 
  6091.                 it.   Example: "PagF _1", "PagF" is the command, "_1"  is the 
  6092.                 parameter. 
  6093.  
  6094.                 The  "|###",  ">xxx",  and any created 4 letter commands  are 
  6095.                 referred to as "objects". 
  6096.  
  6097.                 When editing a command, there are 78 characters available for 
  6098.                 you  to define the  "functionality"   of  the command.    The 
  6099.                 functionality of a command is built up  using other  commands 
  6100.                 and  parameters.    You  can  have a  remark  using  the  "'" 
  6101.                 (apostrophe)  character--anything on  the line following that 
  6102.                 character is ignored. 
  6103.  
  6104.                 The  key  to  understanding commands is that  each  4  letter 
  6105.                 command represents an object,  whose functionality is defined 
  6106.                 by  the  commands that make up that object.   That is,   like 
  6107.                 painting, you create new colors from color primitives.  Here, 
  6108.                 you create new commands from command primitives. 
  6109.  
  6110.                 Well,  I hope I haven't lost you.   It makes a bit more sense 
  6111.                 after  you play around with McEditor for a while.   You  will 
  6112.                 find that most "regular"  commands are a single command.  The 
  6113.                 ability  to  build  new commands  is  something  for  special 
  6114.                 situations  and to provide further customization.    Example, 
  6115.                 there  is a command to display an ANSI,  "dANS".    Which  is 
  6116.                 nice,   but the ANSI displays and before the user  gets  more 
  6117.  
  6118.                                                                          -127-
  6119.  
  6120.                 than  a  glance at it,  we're back at the menu.   So we  look 
  6121.                 around a bit,  and see the "ENTR"  command--which waits for a 
  6122.                 user to hit a key.  We put them together to have the software 
  6123.                 do what we want:  display an ANSI and then wait for the  user 
  6124.                 to hit a key.   Which looks just like:  "dANS _pathname ENTR" 
  6125.                 (quite useful for display top scores files from door games). 
  6126.  
  6127.                 Each  command/object can be stacked/linked/joined/etc.   just 
  6128.                 like  toy blocks.   Think of each 4 letter command  (and  its 
  6129.                 related parameters)  as a toy block and the system is  easier 
  6130.                 to understand. 
  6131.  
  6132.                 The  key is that this is a block construction  language,   in 
  6133.                 which you take blocks and mix-and-match them. 
  6134.  
  6135.                 block types:
  6136.  
  6137.                 ┌────┐ ┌─────────┐ ┌───────┐ ┌────┐
  6138.                 │cmds│ │pathnames│ │numbers│ │etc.│
  6139.                 └────┘ └─────────┘ └───────┘ └────┘
  6140.  
  6141.                 you then take these, and form larger commands:
  6142.  
  6143.                 ┌──────────────────┐
  6144.                 │┌────┐ ┌─────────┐│
  6145.                 ││cmds│ │pathnames││
  6146.                 │└────┘ └─────────┘│
  6147.                 └──────────────────┘
  6148.                 ┌────────────────┐
  6149.                 │┌────┐ ┌───────┐│
  6150.                 ││cmds│ │numbers││
  6151.                 │└────┘ └───────┘│
  6152.                 └────────────────┘
  6153.                 ┌──────────────────┐
  6154.                 │┌────┐┌────┐┌────┐│
  6155.                 ││cmds││cmds││cmds││
  6156.                 │└────┘└────┘└────┘│
  6157.                 └──────────────────┘
  6158.  
  6159.                 and bigger:
  6160.  
  6161.                 ┌──────────────────────────────────────────────────────┐
  6162.                 │┌──────────────────┐┌──────────────────┐┌────────────┐│
  6163.                 ││┌────┐┌────┐┌────┐││┌────┐ ┌─────────┐││┌────┐┌────┐││
  6164.                 │││cmds││cmds││cmds││││cmds│ │pathnames││││cmds││etc.│││
  6165.                 ││└────┘└────┘└────┘││└────┘ └─────────┘││└────┘└────┘││
  6166.                 │└──────────────────┘└──────────────────┘└────────────┘│
  6167.                 └──────────────────────────────────────────────────────┘
  6168.  
  6169.                 Thus,   you choose the reading difficulty:  one big  command, 
  6170.                 many small commands,  or something in between.   The software 
  6171.                 does not care.
  6172.  
  6173.                                                                          -128-
  6174.  
  6175.                 All the 4 letter commands that exist are "built"  upon "|###" 
  6176.                 commands.    4   letters is a lot more readable then  "|###", 
  6177.                 which  is  why they are there--to make the  commands  created 
  6178.                 more readable.   I   could have had it use more than 4 letter 
  6179.                 commands instead of requiring creating 4 letter commands--but 
  6180.                 it  actually makes things more complicated.   Think of the  4 
  6181.                 letter commands as little icons. 
  6182.  
  6183.                 I  would  like  to emphasize that while it may  sound  like a 
  6184.                 programming  language,   it is in fact not.    There  are  no 
  6185.                 complex loops,  or variables,  or any such stuff.   Just  the 
  6186.                 placement  of one needed command next to another to produce a 
  6187.                 new command. 
  6188.  
  6189. Commands        The  easiest way to work with all these commands is  to  just 
  6190.                 take  what  you  need--don't try to create a  BBS  that  uses 
  6191.                 everything.  Just because there is a phone call-back command, 
  6192.                 for  example,  does not mean a call-back system is  something 
  6193.                 you  would  like.   There is a wide variety  of  commands  to 
  6194.                 appeal to the different needs of different BBS types. 
  6195.  
  6196.                 Because  of the way the menu system is implemented,  you  can 
  6197.                 change any of these names if you don't like them.
  6198.  
  6199.                 Implicit to all the commands is that they will return to  the 
  6200.                 current menu when completed. 
  6201.  
  6202.                 The most "combinations" a command can have is:
  6203.                    Cmd4
  6204.                    Cmd4 _###
  6205.                    Cmd4 _g##
  6206.                    Cmd4 _all
  6207.  
  6208.                 These break down as such:
  6209.                    "Cmd4"         -- work with the current whatever.
  6210.                    "Cmd4 _#"      -- work with # whatever.
  6211.                    "Cmd4 _g##"    -- show a menu of all whatever's in 
  6212.                                      group ##, and then do whichever
  6213.                                      whatever is selected.
  6214.                    "Cmd4 _all"    -- show a menu of all whatever's, and then
  6215.                                      do whichever whatever is selected.
  6216.  
  6217.                 That  is  to say,  the commands follow a  common  "expansion" 
  6218.                 system.    Where  you  first work with the current,   then  a 
  6219.                 specified individual,  then a selected group, then all.  Only 
  6220.                 a few commands use all four possible expansions. 
  6221.  
  6222.                 Hit "H" in McEditor for a full list of available commands.
  6223.  
  6224. Misc.           From any menu, the software automatically checks for a Zmodem 
  6225.                 or BiModem upload.  Users can upload by "just doing it"  from 
  6226.                 any menu, and the software will detect it and act accordingly 
  6227.  
  6228.                                                                          -129-
  6229.  
  6230.                 (jumps into the protocol, no searching done,  not done if not 
  6231.                 enough space). 
  6232.  
  6233.                 When listing hot-keys used in the "?"s help--the dark grey 
  6234.                 keys have been toggled inactive.
  6235.  
  6236.                 No  matter  what we do with  menus--loading,   moving  about, 
  6237.                 switching  between  menu systems,  etc.   The categories  are 
  6238.                 always the same,  and common to them all.   As well as common 
  6239.                 to all Styles. 
  6240.  
  6241.                                                                          -130-
  6242.  
  6243. WAITING FOR     The Waiting-For-Caller (WFC) screen contains  6  "objects" of 
  6244. CALLER SCREEN   information: drive space, Callers Log, status indicators, the 
  6245.                 bottom line, and (with toggles) memory information and caller 
  6246.                 statistics. 
  6247.  
  6248.                 There  are a bunch of Settings you can change for  this  "WFC 
  6249.                 Desktop".   Including the size and colors for the Callers Log 
  6250.                 viewport. 
  6251.  
  6252.                 We'll  begin with the easiest:  the bottom line.   This  line 
  6253.                 contains the time and day of week.  When a call comes in,  it 
  6254.                 displays  "[RING]"   when the phone rings (if  using  an  X00 
  6255.                 compatible  fossil driver),  and displays (quickly)  whatever 
  6256.                 the modem sends to us. 
  6257.                 
  6258.                 The  drive  space section,  upper left corner of the  screen, 
  6259.                 shows the available space on drives you have deemed important 
  6260.                 enough to show this.
  6261.                 
  6262.                 The callers log,  upper right of the screen,  shows the  last 
  6263.                 few  callers'  log entries.   You may scroll this  using  the 
  6264.                 arrow keys. 
  6265.                 
  6266.                 The  lower-left corner has status indicators.   In the  brown 
  6267.                 box is the number of messages waiting for the sysop,  and the 
  6268.                 number of new files since the sysop's last calls.   The Faxes 
  6269.                 section isn't working yet. 
  6270.  
  6271.                 Below this,  first,  are 3 modem indicators:  "CTS"  which is 
  6272.                 usually down,  "DSR" which is usually up, and "DCD"  which is 
  6273.                 usually up.  When there is an incoming call, first "DSR" goes 
  6274.                 down (phone taken off hook) and then "DCD" goes down (carrier 
  6275.                 detected).  Although, depending how your modem is configured, 
  6276.                 "DSR" may do nothing, and is not really needed. 
  6277.  
  6278.                 Moving  a little to the right we have "Trap".   When this  is 
  6279.                 down, that means we are trapping everything to SESSION.LOG. 
  6280.  
  6281.                 Beneath these are two chat indicators.   "Chat"  is down when 
  6282.                 we  are  trapping chat sessions to the trap file.    The  two 
  6283.                 little faces are down (connected) when the sysop is available 
  6284.                 for chat. 
  6285.  
  6286.                 Hitting <F8>  brings up a daily statistics summary, which you 
  6287.                 can scroll through as well (+/-). 
  6288.                 
  6289.                 There  is  a  debugging Toggle that will show  you  a  little 
  6290.                 memory available information. 
  6291.                 
  6292.                 Here are some more hot-keys from the WFC screen:
  6293.  
  6294.                   F1     brings up a hot-key help screen.
  6295.                   F9     normal console login (with reading of new mail).
  6296.  
  6297.                                                                          -131-
  6298.  
  6299.                   F10    brings up a menu of various stuff to do.
  6300.                   <end>  turbo console login (no mail reading).
  6301.                   <alt>d goes to the internal terminal program which you can
  6302.                          use to call other BBSs.
  6303.                   <alt>s shell to DOS.
  6304.                   <alt>z exit to DOS, but take phone off-hook first (callers
  6305.                          will get a busy signal).
  6306.                   <alt>x exit to DOS, leave phone on-hook (callers will get
  6307.                          continuous ringing--normally you do not want this).
  6308.                 
  6309.                   F2     toggles on/off whether we should automatically trap
  6310.                          chat sessions.
  6311.                   F3     toggles on/off your available-to-chat status.
  6312.                   F6     toggles on/off screen blanking.  When on, the
  6313.                          screen will stay blank until you do another F6.
  6314.                          Note: console beep's are also disabled.
  6315.                   F8     toggles on/off the display of the daily stats.
  6316.                   <pgdn> toggles on/off Trap All
  6317.                   <alt>h hot-list-limitor, see below.
  6318.                   <alt>p port-debugger.  This is a command line access to
  6319.                          your modem like all terminal programs offer.  It
  6320.                          is useful for such things and verifying that your
  6321.                          modem initialization string works, and looking at
  6322.                          the modems NRAM settings.
  6323.                 
  6324.                   <ctrl>Fx will do whatever you define.
  6325.  
  6326.                 Usually it will take a  couple  of  seconds  until connection 
  6327.                 speed  is determined.  However, it could last the full "logo" 
  6328.                 time-out time if the connection was one you had not specified 
  6329.                 in your CONNECT strings database (for instance,  this  occurs 
  6330.                 with 300 baud callers).   This is because, for baud rates you 
  6331.                 do not want,  the system merely waits for that caller to hang 
  6332.                 up, or for them to time-out. 
  6333.  
  6334.                 Entries  are  recorded  in  the Callers Log  for  these  "bad 
  6335.                 connects".  They are of the form: "Non user called at <time>.  
  6336.                 Connect: |...|".  The "|...|" is the crucial information.  It 
  6337.                 will  tell you  the exact string the software  received  from 
  6338.                 your modem.   A   bad connection may contain just garbage,  a 
  6339.                 1200  connection would look like "| 1200<garbage>|"   usually 
  6340.                 (if  you  deleted the 1200  entry from  the  CONNECT  strings 
  6341.                 database).  If you forgot any CONNECT strings, this will tell 
  6342.                 you the information you need.   Note,  however,  this line is 
  6343.                 also  given for connects for net mail and when a user  simply 
  6344.                 hangs up without entering their name. 
  6345.  
  6346.                 Hitting  <alt>H accesses the Hot-List-Limitor.   This  allows 
  6347.                 you  set  a list of user names who are the only  ones  to  be 
  6348.                 allowed onto the BBS for a specified period of time.    After 
  6349.                 that  person  calls,  their name is removed  from  the  list.  
  6350.                 After the specified time,  or when the list is empty,  normal 
  6351.  
  6352.                                                                          -132-
  6353.  
  6354.                 callers will again be allowed to log in.   To have a name  on 
  6355.                 the  list be able to call more than once,  specify their name 
  6356.                 in the list more than once. 
  6357.  
  6358.                 Hitting F10 brings up a menu with:
  6359.  
  6360.                   Alter Settings     --change Settings.
  6361.                   Crash Contact      --FREQ/Net FA/Exchange Net Mail now.
  6362.                   File Maintenance   --edit file entries.
  6363.                   Post A Message     --leave a message in any area.
  6364.                   Remove A File      --oust an on-line file.
  6365.                   Toggles            --change Toggles.
  6366.                   User Maintenance   --edit user entries.
  6367.                   View A File        --display a text file.
  6368.                                        (exits when RING detected)
  6369.  
  6370.                 The same "Post A Message"  command we have at WFC can be used 
  6371.                 in a shuttle login menu.  This command asks for a FROM: name, 
  6372.                 and  if that name is that of a current-user,  it asks them to 
  6373.                 first login.   After all,  can't have random callers  leaving 
  6374.                 people  messages using other peoples names.   However,   this 
  6375.                 limitation is removed when used from the WFC menu. 
  6376.  
  6377.                 There  is  a Toggle that will let you lock the keyboard  from 
  6378.                 doing <alt>/etc. commands.  When on, all anyone can do at the 
  6379.                 console from the WFC screen is <F9> to login locally. 
  6380.                 
  6381.                 See also: SETTINGS, TOGGLES
  6382.  
  6383.                                                                          -133-
  6384.  
  6385. THE "WHO'S ON"  Below  each  menu ANSI,  the console will show a user  status 
  6386. STATUS LINE     line. 
  6387.  
  6388.                 It looks something like this:
  6389.                   User Name--Location 5sl 10calls 2msgs ctn
  6390.  
  6391.                 Which breaks down as:
  6392.                   "User Name" is just that, the callers name.
  6393.                   "Location"  is the callers city and state.  If flashing, 
  6394.                               then this is the text they typed for a chat 
  6395.                               request. 
  6396.                   "5sl"       is the callers show Security Level value ("5").
  6397.                   "10calls"   is the number of times the caller has called.
  6398.                   "2msgs"     is the number of messages the caller has ever 
  6399.                               posted ("2"). 
  6400.                   "c"         appears if chat trap-to-file is on.
  6401.                   "t"         appears if trap all to file is on.
  6402.                   "n"         appears if sysop-on-next is on.
  6403.                   "PR"        appears if the user is undergoing Peer Review.
  6404.  
  6405.                   A music symbol appears when you are allowing users to try 
  6406.                   to chat with you. 
  6407.                 
  6408.                 Users  do not see this information line.   When you logon  at 
  6409.                 the console, you will also not see it. 
  6410.  
  6411.                 Most  communications programs use a locked-down  last  screen 
  6412.                 line  or two.   Which I am sure worked great in the old days, 
  6413.                 and  with  BBS's that need user command lines,  but for  this 
  6414.                 software  it just messed up the presentation too much.   Both 
  6415.                 because  we  can  use that 25th line for  ANSI's,   but  also 
  6416.                 because  we  use that line for lots of other useful stuff  as 
  6417.                 well. 
  6418.  
  6419.                                                                          -134-
  6420.  
  6421. ACCOUNT VALUE   Accounts do have value.  The harder they are to get, the more 
  6422.                 value they have. 
  6423.  
  6424.                 Simple higher SL values increase their value. 
  6425.  
  6426.                 Adding  Peer  Review  increases  the  value  of  all   passed 
  6427.                 accounts. 
  6428.  
  6429.                 Adding other requirements,  such as name verification  (users 
  6430.                 send in proof of their name) or phone verification (call back 
  6431.                 testing), further adds value. 
  6432.  
  6433.                 Finally,  stats are seen by all--so if a user has a lot of UL 
  6434.                 credits, that account has worth. 
  6435.  
  6436.                 What  does this mean?   It means you could have  troubles  as 
  6437.                 accounts  increase in value.   More hacking attempts.   Users 
  6438.                 selling,  or trading accounts.   Probably other stuff I  have 
  6439.                 not thought of. 
  6440.  
  6441.                 Another  problem,  however,  is "worthless"  accounts  having 
  6442.                 value.   Example:  if you give new users free download bytes.  
  6443.                 Suddenly its easier for some users to log in as new each time 
  6444.                 rather than upload. 
  6445.  
  6446.                 You can give old accounts value by setting up "UL credit each 
  6447.                 time the file is downloaded"  system.   Even as part of  your 
  6448.                 regular  system,  set it up so that 1%  is given again to the 
  6449.                 uploader  whenever  that  file  is  downloaded.    This  will 
  6450.                 encourage  users  to stick with their old accounts,   and  to 
  6451.                 upload popular files. 
  6452.                 
  6453.  
  6454.                                                                          -135-
  6455.  
  6456. EVENTS          All events are done after a user logs off,  or after the "WFC 
  6457.                 inactivity" time has passed when no user in on-line.  
  6458.                 
  6459.                 Example: a 00:00:00 event does not occur at 00:00:00.  But at 
  6460.                 00:00:01   if no user  is  on.   If a user is on it  will  be 
  6461.                 executed after they log off. 
  6462.  
  6463.                 There is no forcing a user off for events,  or reducing their 
  6464.                 time for an event. 
  6465.  
  6466.                 If you REALLY need to execute an event at a precise time, you 
  6467.                 can create an earlier event (say 15 minutes earlier)  to do a 
  6468.                 "-Usr"  which will stop callers.  At this time, however, I am 
  6469.                 aware  of  no  events  that require they  be  executed  at  a 
  6470.                 specific--and only that specific--time. 
  6471.                 
  6472.                 You  could  also use Security  Level-based  access  start/end 
  6473.                 times  to  limit users out of a time frame.   This  would  be 
  6474.                 useful,  for example,  if you run a real busy BBS and need to 
  6475.                 poll  for  mail each night--but need to poll  multiple  times 
  6476.                 because that BBS also is busy. 
  6477.  
  6478.                 Access  start/end  times are like events.   These  exist  for 
  6479.                 Security  Levels,   and  for doors.   Unlike  normal  events, 
  6480.                 however, these do have a functional limit:  the start and end 
  6481.                 time must not cross 00:00:00  (midnight).  Examples: 1  am to 
  6482.                 11  pm is fine, but 9 pm to 3am will not work.   The software 
  6483.                 works  using  a 24  hour clock,  so the start/end  times  you 
  6484.                 define  must  outline a "time bubble"  within this  24   hour 
  6485.                 clock. 
  6486.  
  6487.                 Although I have not confirmed it, I think the events will not 
  6488.                 work properly if an event is a full-exit door.   I suspect it 
  6489.                 will  just  keep looping running this event.   So do  not  do 
  6490.                 full-exit  doors  for  events  (if you  need  to  door,   use 
  6491.                 shelling/shrinking "DOOR"s, or the "Door" command). 
  6492.  
  6493.                 To stop the execution of events after restarting the BBS, you 
  6494.                 can use the /NOEVENTS command line parameter. 
  6495.  
  6496.                 See also:  MINUTES
  6497.  
  6498. Defining        You set up events on the sysop menus.
  6499.  
  6500.                 Events contain the following fields:
  6501.  
  6502.                 Execute it after
  6503.                 
  6504.                   This  is  the time we should do the event.   Ideally.    In 
  6505.                   fact, this time will be used if a user is not on-line.   If 
  6506.                   a user is on-line, we do the event when they log off. 
  6507.  
  6508.                                                                          -136-
  6509.  
  6510.                 But not if after
  6511.  
  6512.                   This  provides us with an execution window for  the  event.  
  6513.                   If for some reason we have passed this time, we will not do 
  6514.                   the event. 
  6515.  
  6516.                   This is useful,  for example, to stop net mail polling of a 
  6517.                   Hub.  You would poll for an hour, then stop. 
  6518.                   
  6519.                   The  command line command /NOEVENTS is useful for  stopping 
  6520.                   events  after  your  system crashes,  but using  this  time 
  6521.                   limitor is a also a good method. 
  6522.  
  6523.                   Set  this  to the same as the event start time to  have  no 
  6524.                   maximum time limit of execution. 
  6525.                   
  6526.                 Days of the week
  6527.  
  6528.                   Which day or days of the week to execute the command on.
  6529.  
  6530.                   M = Monday           R = Thursday       N = Sunday
  6531.                   T = Tuesday          F = Friday
  6532.                   W = Wednesday        S = Saturday
  6533.  
  6534.                   Remember  that  events that occur after  midnight  actually 
  6535.                   occur on  the  next day.   Example,  if you want to have an 
  6536.                   event execute in the middle of Sunday night at 3:00am,  you 
  6537.                   would  set  the event to execute  on  Monday--since  3:00am 
  6538.                   Sunday night is actually Monday morning. 
  6539.  
  6540.                 Menu Command
  6541.  
  6542.                   This  is  the actual event to do.   It is a 4  letter  menu 
  6543.                   command. 
  6544.  
  6545.                   While there are many pre-made events you can do.   Most  of 
  6546.                   the  events will need to be created.   For example:   "NODd 
  6547.                   _phone _zone" to poll a net address, or "Door _pathname" to 
  6548.                   run a door maintenance utility. 
  6549.  
  6550.                 Attributes
  6551.  
  6552.                   1  When  ON,  we take the phone off-hook before  doing  the 
  6553.                      event, and put it back on-hook when the event is over. 
  6554.  
  6555.                      If  you  have  an  event that is going  to  take  a  few 
  6556.                      minutes,  you want to do this so callers do not just get 
  6557.                      continuous ringing while the event is executing. 
  6558.  
  6559.                   2  Disable the event.   When ON,  the event is inactive and 
  6560.                      will not do anything. 
  6561.  
  6562.                                                                          -137-
  6563.  
  6564.                   3  Retry  every 5 minutes.   This is only for the  call-out 
  6565.                      commands (net mail commands). 
  6566.                      
  6567.                      If  the  command did not establish contact with  another 
  6568.                      BBS,   then  it  is reset and will be tried again  in  5 
  6569.                      minutes.    This only works from the current time to the 
  6570.                      top of the hour (example:  start it at 2:01am,  when  it 
  6571.                      gets to 2:59am we give up). 
  6572.  
  6573.                      If  we did establish contact,  the event  is  considered 
  6574.                      successful and completed. 
  6575.  
  6576.                 Node
  6577.  
  6578.                   This  is the node to execute the event on.    Usually  your 
  6579.                   less-used node. 
  6580.  
  6581.                   You should not configure two or more nodes to poll the same 
  6582.                   Zone at the same time. 
  6583.                   
  6584.                   Example:   you want to poll 1:100/1  and 1:200/1.   You can 
  6585.                   either  set these up as two events on one node,  or in  two 
  6586.                   different  "time boxes"  on two nodes.   But do  not,   for 
  6587.                   example,   poll  1:100/1  on node 1 from 1am-3am  and  poll 
  6588.                   1:200/2  on node 2 from 2am-3am.  Because in the off chance 
  6589.                   of  both getting connections at the same time,  they  would 
  6590.                   both  use  Zone 1's directory (MSGSTUFF\1)  and  could  get 
  6591.                   confused. 
  6592.  
  6593.                   For  different  networks  (different Zones)   there  is  no 
  6594.                   combination  that causes trouble.   Only when the Zones are 
  6595.                   the same, and you are doing it at the same time on multiple 
  6596.                   nodes. 
  6597.  
  6598.                 Description
  6599.                   
  6600.                   A description to help remind you what the event is.  
  6601.  
  6602.                                                                          -138-
  6603.  
  6604. OH OH!          From  now  on  the docs deal with the  very  complex  topics.  
  6605.                 Stuff  that may confuse you even after running  the  software 
  6606.                 for a few months. 
  6607.  
  6608.                 Now  is  a good time to stop reading docs and play more  with 
  6609.                 the software. 
  6610.  
  6611.                                                                          -139-
  6612.  
  6613. STYLES\         These are tricky, watch yourself.
  6614. LANGUAGES
  6615.                 Let's begin with some terms.
  6616.  
  6617.                 A "menu system" is a group of menus stored apart in their own 
  6618.                 files.    They  are distinct from other menu  systems.    The 
  6619.                 images  (such as menu ANSIs are not really part of  the  menu 
  6620.                 system). 
  6621.                 
  6622.                 A  "Style"  is one of these menu systems combined  with  menu 
  6623.                 images.    A  Style has one menu system,  but may  have  many 
  6624.                 Languages.
  6625.  
  6626.                 A "Language" is a group of menu images.  Also known as a menu 
  6627.                 set,  or theme.  It can be just a couple menu ANSIs,  or more 
  6628.                 complex complete-text replacements. 
  6629.  
  6630.                 Thus, we have following:
  6631.  
  6632.                 ┌───────────────┐  ┌───────────────┐  ┌───────────────┐
  6633.                 │Style 1        │  │Style 2        │  │Style 3        │
  6634.                 │               │  │               │  │               │
  6635.                 │┌─────────────┐│  │┌─────────────┐│  │┌─────────────┐│
  6636.                 ││Menu System 1││  ││Menu System 2││  ││Menu System 3││
  6637.                 │└─────────────┘│  │└─────────────┘│  │└─────────────┘│
  6638.                 │┌─────────────┐│  │┌─────────────┐│  │┌─────────────┐│
  6639.                 ││Language 1-1 ││  ││Language 2-1 ││  ││Language 3-1 ││
  6640.                 ││Language 1-2 ││  ││Language 2-2 ││  ││Language 3-2 ││
  6641.                 ││ . . .       ││  ││ . . .       ││  ││ . . .       ││
  6642.                 ││Language 1-n ││  ││Language 2-n ││  ││Language 3-n ││
  6643.                 │└─────────────┘│  │└─────────────┘│  │└─────────────┘│
  6644.                 │               │  │               │  │               │
  6645.                 └───────────────┘  └───────────────┘  └───────────────┘
  6646.  
  6647.                 I  opted not to use "Style X"  for the name of Styles.    But 
  6648.                 instead choose to use 3 character identifiers. 
  6649.  
  6650.                 Thus, "Style 1" became "1ST", "Style 2" became "RED",  and so 
  6651.                 on. 
  6652.  
  6653.                 The  sample  shuttle/matrix logon system can be activated  by 
  6654.                 just doing: 
  6655.  
  6656.                   JDRBBS /1stcmd=SHUT
  6657.  
  6658.                 (to turn it off, do JDRBBS /1stcmd=STRT).
  6659.  
  6660.                 The "SHUT" menu command is stored with the 1ST Style,  so for 
  6661.                 the above to work, your "Default Style\Language" Setting will 
  6662.                 need to be "1ST\1"  (the sample shuttle ANSIs are in with the 
  6663.                 1\  Language).    If  you  want to do  this  with  the  other 
  6664.                 Style\Languages  as a default,  you must duplicate the  "sht" 
  6665.  
  6666.                                                                          -140-
  6667.  
  6668.                 menu  from 1ST into that new Style,  and copy the appropriate 
  6669.                 files   (SHUTTLE.ANS,   FX.TXT)   into  that   Style\Language 
  6670.                 directory. 
  6671.  
  6672.                 Technical note:   After a user hangs up,  we load the Default 
  6673.                 Style\Language.    After  we know who the user  is  when  the 
  6674.                 login, we load their Style\Language.  So it is most efficient 
  6675.                 if  the Style\Language most of your users prefer is the  same 
  6676.                 one you have configured as the default. 
  6677.  
  6678. Directories     Thus,   the files for "Style 1"  are stored in 1ST\,  and the 
  6679.                 files  for "Style 2"  in RED\,  etc.   Or more  specifically, 
  6680.                 d:\BBS\NODE???\1ST\, etc. 
  6681.  
  6682.                 Each  Style  can only have one menu system,   and  these  are 
  6683.                 stored in that Style directory (1ST\, RED\, etc.). 
  6684.  
  6685.                 Languages are also stored in that directory, but in their own 
  6686.                 subdirectories.    So "Style 1,  Language 1-1"  is stored  in 
  6687.                 "1ST\1\",  "Style 1, Language 1-2" in "1ST\2\", and "Style 2, 
  6688.                 Language 1" in "RED\1\", etc. 
  6689.  
  6690.                 If you look at NODE001\, you will see the Styles\Languages:
  6691.                 
  6692.                   1ST\1 \2 \3 \4 \5 \6 \7 \8 \9 \A
  6693.                   RED\1 \2
  6694.                   WW4\1
  6695.                   JDR\1
  6696.  
  6697.                 Four Styles,  various numbers of Languages depending on which 
  6698.                 Style. 
  6699.  
  6700.                 It  is  a very flexible system.   You can add new  Styles  or 
  6701.                 Languages whenever you want.   You can easily exchange Styles 
  6702.                 (normally)  or Languages (less so)  with other sysops.   Just 
  6703.                 ask that sysop for a copy of their Style,  plug it in, select 
  6704.                 that  Style  (New Languages user menu)  and your system  will 
  6705.                 both look and feel EXACTLY like the BBS that gave that  style 
  6706.                 to you. 
  6707.  
  6708.                 Above  is  the  easy stuff.   To really  customize  your  own 
  6709.                 Style\Language you have to learn to master McEditor,  and get 
  6710.                 a  better understanding of how individual files are used  and 
  6711.                 stored in Languages (the COMMON system). 
  6712.                 
  6713.                 But first, a little more on directories:
  6714.  
  6715.                 The two important notations are "???" which converts to node, 
  6716.                 and "***\&"  which converts to Style\Language.   Any pathname 
  6717.                 may contain these, and they will be converted. 
  6718.  
  6719.                 For one node,  it really does not matter if you use "???"  or 
  6720.                 "001". 
  6721.  
  6722.                                                                          -141-
  6723.  
  6724.                 But with two nodes?
  6725.  
  6726.                 Well, as it turns out,  it only matters if the second node is 
  6727.                 to be different from the first. 
  6728.                 
  6729.                 So,   initially,  we create our second node by copying all of 
  6730.                 NODE001 to a NODE002 directory. 
  6731.  
  6732.                 This allows us to completely, and uniquely, customize node 2.  
  6733.                 For example,  if node 2 is a sysop-only node,  you can delete 
  6734.                 from  the  NODE002   directory all the  Styles\Languages  you 
  6735.                 yourself do not actually use.
  6736.  
  6737.                 However,   if  your node 2 is to be exactly like node 1  (and 
  6738.                 these  examples apply to nodes 3 to 999  as well),  then  you 
  6739.                 delete most of NODE002 completely. 
  6740.  
  6741.                   ─┬─NODE001─┬─1ST           ─┬─NODE001─┬─1ST  
  6742.                    │         ├─RED            │         ├─RED  
  6743.                    │         └─TEMP     to:   │         └─TEMP 
  6744.                    └─NODE002─┬─1ST            └─NODE002───TEMP
  6745.                              ├─RED
  6746.                              └─TEMP
  6747.                 
  6748.                 When the nodes are two be identical, you should take the time 
  6749.                 and  go into Alter Pathnames and change all "???"  to  "001".  
  6750.                 This will lock those pathnames to the NODE001 directory.  The 
  6751.                 only  one  you should not do this for are  the  NODE???\TEMP\ 
  6752.                 entries.    Then  just keep your NODE002\TEMP  directory  and 
  6753.                 delete all the other directories and files in NODE002. 
  6754.  
  6755.                 This  trick  only  saves about 500k (depending  on  how  many 
  6756.                 Styles\Languages  you have set up),  and for the most part is 
  6757.                 not worth the extra work.  However, if you have more than two 
  6758.                 identical  nodes,  or just don't like trying to keep all  the 
  6759.                 menu systems in sync, then this may be a good thing. 
  6760.  
  6761.                 Alter  Pathnames tells the software where the files are,   so 
  6762.                 you can place them wherever you want. 
  6763.  
  6764.                 You can also make files that are not currently node-specific, 
  6765.                 into node-specific by using "???" in their pathname (example: 
  6766.                 to  make  the Style\Languages  node individual,   change  the 
  6767.                 pathname  to  d:\BBS\GLOBAL\SYSTEM\LANGS.???).    When you do 
  6768.                 this,   you  will have to login into each node separately  to 
  6769.                 change the files from the sysop menu (example:  log in node 1 
  6770.                 to change LANGS.001, node 2 to change LANGS.002). 
  6771.  
  6772.                 If you have many nodes, and they just have a couple different 
  6773.                 styles,  what you can do is drop the "???"  node  identifiers 
  6774.                 from  the  Style  and Language files,  and  pull  the  Styles 
  6775.                 completely out of the NODE??? directories: 
  6776.  
  6777.                                                                          -142-
  6778.  
  6779.                   ─┬─NODE001─┬─1ST           ─┬─NODE001───TEMP
  6780.                    │         ├─RED            ├─NODE002───TEMP
  6781.                    │         └─TEMP     to:   ├─1ST
  6782.                    └─NODE002─┬─1ST            ├─RED
  6783.                              ├─WW4            └─WW4
  6784.                              └─TEMP
  6785.                 
  6786.                 It  requires a little trial and error,  and a bit of work  in 
  6787.                 both   Alter  Pathnames  and  the  menu  systems   themselves 
  6788.                 (changing the location of the ANSIs for example). 
  6789.  
  6790.                 Really,  this stuff should only be considered by those with 3 
  6791.                 or more nodes. 
  6792.  
  6793.                 You see, because the Style\Languages contain nothing but text 
  6794.                 to read, they do not need to be part of each node directory. 
  6795.  
  6796.                 The trick to remember  when doing  this stuff  is to keep the 
  6797.                 TEMP directories inside the NODE??? directories. 
  6798.  
  6799.                 Heck,  you say,  why didn't I do this for the release?    The 
  6800.                 answer  is because all those Style\Language directories would 
  6801.                 clutter  up  the  \BBS directory.   By  keeping  them  inside 
  6802.                 NODE001, they are nice and organized. 
  6803.  
  6804.                 It  doesn't matter where the Style\Language directories  are, 
  6805.                 just that you have their pathnames right. 
  6806.                 
  6807.                 There  is  nothing  that  says you have  to  offer  the  same 
  6808.                 Style\Languages  on  each  node.   The power of  this  system 
  6809.                 allows  each  node  to produce a BBS look  and  feel  totally 
  6810.                 different from each other. 
  6811.  
  6812. Styles          A Style is 3 files and and a Language directory.
  6813.  
  6814.                 Those 3 files are: MENUS.DAT, BBS_CMDS.DAT, and COMMON.LST.
  6815.  
  6816.                 MENUS.DAT  and BBS_CMDS.DAT are used by McEditor.   They  are 
  6817.                 the menu system for this Style. 
  6818.  
  6819.                 COMMON.LST  tells the software which text/image files are  to 
  6820.                 be  gotten from the Language subdirectories,  and which  from 
  6821.                 the BBS\COMMON directory. 
  6822.  
  6823.                 The  BBS\COMMON  directory holds files that are "common"   to 
  6824.                 more than one Language.   That is,  files that are  identical 
  6825.                 between Languages.  Rather than wasting drive space storing a 
  6826.                 duplicate  of each file in a Language directory,  we put them 
  6827.                 in  this  COMMON directory.   COMMON.LST tells  the  software 
  6828.                 where the files are. 
  6829.  
  6830.                                                                          -143-
  6831.  
  6832.                 See   BBS\COMMON\COMMON.HLP  for  more  information.     Some 
  6833.                 pathnames in various menu commands use "_COMMON##"--these are 
  6834.                 referencing   this   COMMON.LST   file   for   the   pathname 
  6835.                 information. 
  6836.  
  6837. Languages       In the Language subdirectories,  you usually find menu  image 
  6838.                 files (ANSIs),  LINES.TXT,  TXT_BLKS.TXT,  HELPBLKS.TXT,  and 
  6839.                 some others including .IDX files.  Really, any file that that 
  6840.                 Language may need could be stored here. 
  6841.  
  6842.                 Or,  as pointed out above,  it is a fairly standard file,  it 
  6843.                 may instead be stored in the COMMON directory. 
  6844.  
  6845.                 If you want to modify a file in the COMMON directory to  make 
  6846.                 it more unique to a Language; first copy it into the Language 
  6847.                 directory,   then  modify  it.    Then  modify  that  Style's 
  6848.                 COMMON.LST  file  so it knows to use the copy of the file  in 
  6849.                 the Language directory. 
  6850.  
  6851.                 The  COMMON  directory  can  be  thought  of  as  a  baseline 
  6852.                 directory--where  the  software goes when it can't  find  the 
  6853.                 file in the Language directory.  We save space by not putting 
  6854.                 it  into the Language directory if there is already an  exact 
  6855.                 copy of it in the COMMON directory. 
  6856.  
  6857. Your own style  What's  involved in making your own style?   Not much,   just 
  6858.                 change  what's  already there.   Or creating a new  3  letter 
  6859.                 directory, and copying, for example, 1ST\ and 1ST\1 into it. 
  6860.  
  6861.                 Merely  creating  a  new directory is not enough,   you  must 
  6862.                 provide  a way to change to that directory.   That is why the 
  6863.                 sysop's menu "Styles\Languages"  command exists--to allow you 
  6864.                 to define alternate views of your BBS for your users. 
  6865.  
  6866.                 Then just edit the ANSIs and text files to your liking.  Same 
  6867.                 with that Style's menu system.  Add more Languages, etc.  Get 
  6868.                 additional  files from the COMMON dir,  or maybe just  change 
  6869.                 those files outright (would affect multiple Languages). 
  6870.  
  6871.                 Use  the  "L"  command in McEditor to load and work  on  menu 
  6872.                 systems.    Just  type "L",  then the path to the  Style (eg. 
  6873.                 "c:\bbs\node001\1st" that you wish to play with. 
  6874.                 
  6875.                 Each menu system can have menus with  Menu  ID's that are the 
  6876.                 same  as in other menu  systems.   The reason this is  OK  is 
  6877.                 because  the ">xxx"  goto-menu command does not look  outside 
  6878.                 the current menu system for its menus. 
  6879.  
  6880. Menu Commands   The  "LngS"   menu command provides the user a  list  of  all 
  6881.                 defined Styles\Languages and allows them to select one. 
  6882.  
  6883.                                                                          -144-
  6884.  
  6885.                 When   using  this command, all Styles need to have a Menu ID 
  6886.                 that  matches the Menu ID of the menu which has this command.  
  6887.                 So that,  for example, when we switch to RED\2 from 1ST\1  we 
  6888.                 stay at the User Stuff menu.  Example: we do "LngS" from Menu 
  6889.                 ID 004  in the RED Style,  we select the 1ST\1 Style\Language 
  6890.                 (only  the Style matters),  we change to  that  Style's  menu 
  6891.                 system, and locate its Menu ID 004 and display that.  If that 
  6892.                 Style  had no Menu ID 004,  we would not know  where  to  go.  
  6893.                 However,  you can put a ">xxx"  command immediately after the 
  6894.                 "LngS"  to tell it which Menu ID to go to (for example:  LngS 
  6895.                 >001   will  switch  to the main menu of the  newly  selected 
  6896.                 Style\Language, rather than try to stay at the same Menu ID). 
  6897.                 
  6898.                 When you switch to a different Style\Language,  the  software 
  6899.                 reloads all its menus and resets all its pathnames to adjust 
  6900.                 for any needed pathname changes.
  6901.                 
  6902.                 As an aside,  there is a User Attribute which allows you, the 
  6903.                 sysop,   to  stop  users  from being  able  to  change  their 
  6904.                 Style\Language.
  6905.  
  6906.                 There  is also a menu command,  "LANG",  which can be used to 
  6907.                 change  a users Style\Language preference.   This alternative 
  6908.                 allows  you  to  make your own "change Style\Language"   menu 
  6909.                 rather  than  having  the  software generate a  menu  of  all 
  6910.                 possible Style\Languages.
  6911.  
  6912.                 Finally, there is THE command.  "MENU _path". 
  6913.  
  6914.                 I  have been very nicely pointing out how a Style contains  a 
  6915.                 single menu system.   But the hard reality is that each Style 
  6916.                 is  a  menu system.   And that Languages are  not  necessary.  
  6917.                 Both  the  Sysop  menus  and the  DOORMENU  system  are  menu 
  6918.                 systems.  This command switches between menu systems. 
  6919.  
  6920.                 When   you've  mastered  McEditor,   and  bounce  around  the 
  6921.                 Styles\Languages,   and understand DOORMENU,  and peeked  and 
  6922.                 were not impressed by the sysop menus,  then you are ready to 
  6923.                 understand  this information.   Until then,  skip to the next 
  6924.                 section. 
  6925.  
  6926.                 It  is  this  command that is ultimately  executed  when  you 
  6927.                 change Styles.  The "LngS" and "LANG" commands hide this fact 
  6928.                 from you,  but they to are really just aspects of this "MENU" 
  6929.                 command. 
  6930.  
  6931.                 What the  "MENU" command itself allows YOU to do  is organize 
  6932.                 your   menu  systems.    Unlike  the  Style\Language-specific 
  6933.                 commands above,   this  command does not change the Node  and 
  6934.                 Style  stuff.    It  instead merely loads a  whole  new  menu 
  6935.                 system. 
  6936.  
  6937.                                                                          -145-
  6938.  
  6939.                 These  whole  new menu systems can be one menu to a  thousand 
  6940.                 menus.    But  since its purpose is to organize  your  menus, 
  6941.                 usually its a group of menus that share a common theme. 
  6942.  
  6943.                 The sysop menu system is just such an example.   I  COULD mix 
  6944.                 all the "user"  menus with the sysop menus--but as anyone who 
  6945.                 saw .08 can tell you, that's REALLY confusing. 
  6946.  
  6947.                 So I toss them off into their own directory.
  6948.                 
  6949.                 There  is only one key to remember about actually using  menu 
  6950.                 systems.  That key is that you must change to them before you 
  6951.                 can use them, and you must change back when you are done. 
  6952.  
  6953.                 Typically,   you switch to a menu system with a ">xxx"  so it 
  6954.                 goes to and displays a menu.  That is: "MENU _path >xxx". 
  6955.  
  6956.                 Everything  that  has previously been referred  to  as  "menu 
  6957.                 systems"   is a lie.   The fact is that all the menu  systems 
  6958.                 together form one giant menu system.   When you shift between 
  6959.                 "menu  systems"  you are merely shifting to other branches of 
  6960.                 this huge menu system tree. 
  6961.  
  6962.                 Styles are "exclusionary" branches.  That is, you can only be 
  6963.                 on one at a time (for any one node). 
  6964.  
  6965.                 But any other menu systems,  like the sysop menu system,  are 
  6966.                 not exclusionary,  and are merely "GOSUB'ed"  to.   We do not 
  6967.                 deal with such hassles like node numbers, Styles, or Language 
  6968.                 fields.    It's a simple "all the files for this menu  branch 
  6969.                 are in this path, go use them". 
  6970.  
  6971.                 Some  notes:   when  the  user hangs  up  in  a  menu  system 
  6972.                 everything is reset to normal,  and you cannot do a full-exit 
  6973.                 door in a menu system (but you can when the menu system is  a 
  6974.                 Style\Language). 
  6975.  
  6976.                 This  is  the  Zen  Master command of  the  menu  system  for 
  6977.                 Juggernaut.   When you are able to create groupings of  menus 
  6978.                 just  because  you want the organization,  and  are  able  to 
  6979.                 properly call and  return from them,   you will have achieved 
  6980.                 complete understanding of THE menu system. 
  6981.  
  6982.                 In  the meantime Grasshopper,  study the sysop menu system to 
  6983.                 see how it does things.   But beware the Black Night known as 
  6984.                 DOORMENU, for it is rumored to be even more complex. 
  6985.  
  6986.                                                                          -146-
  6987.  
  6988. TEXT FILE       The  Text File Management System allows the sysop a method to 
  6989. MANAGEMENT      organize  text  files.   It is both a G-Files  and  Bulletins 
  6990. SYSTEM          system. 
  6991.  
  6992.                 It is quite flexible, and based on the "TXTF" menu command.
  6993.  
  6994.                 "TXTF _#", where "#" is 1 to 999.
  6995.                 
  6996.                 It stores the text files in an archive (TXTF_###.ZIP).    For 
  6997.                 example, "TXTF _1" uses "TXTF_001.ZIP". 
  6998.  
  6999.                 It uses an access interface exactly like <alt>d.
  7000.  
  7001.                 See also:  TXTF, TERMINAL PROGRAM
  7002.  
  7003.                                                                          -147-
  7004.  
  7005. DIRECTRY'S      Directry's  are  collections of information  stuck  into  one 
  7006.                 file.  Also, notice it's spelled "Directry" not "Directory".
  7007.  
  7008.                 There  are  three  files for  each  directry:   DIRECTRY.D##, 
  7009.                 DIRECTRY.T##,   and  DIRECTRY.I## (which the software creates 
  7010.                 and maintains). 
  7011.                 
  7012.                 DIRECTRY.D## contains the information (the Data).   This file 
  7013.                 has the format: 
  7014.  
  7015.                     HEADER/NOHEADER
  7016.                     %%%
  7017.                     text line 1
  7018.                     . . .
  7019.                     text line n
  7020.                     %%%
  7021.                     text line 1
  7022.                     etc.
  7023.                 
  7024.                 The first line contains whether the screen should be  cleared 
  7025.                 and    the    logo   (LINES.TXT    line    001)     displayed 
  7026.                 (HEADER/NOHEADER).   The second line is our  first "separator 
  7027.                 line"  and consists of "%%%".   From  then  on  we  alternate 
  7028.                 between information and "%%%" lines. 
  7029.  
  7030.                 DIRECTRY.T## files contain the Titles, and are of the form: 
  7031.  
  7032.                   First line: Line of text that makes up the heading.
  7033.                   2nd line  : Text of the question to ask.
  7034.                   n lines   : n lines of titles for each information element
  7035.                               in the DIRECTRY.D## file. 
  7036.  
  7037.                   The  size  of the longest title determines how many  titles 
  7038.                   are  put on each line for the selection menu.  Using a  max 
  7039.                   title width of 20 will get you 3 entries per line. 
  7040.  
  7041.                 ## corresponds to a value of 01  to 99.   Directry files need 
  7042.                 not be in sequential order:  5, 19, 37, 88 or 1, 2, 3, 4  are 
  7043.                 OK. 
  7044.  
  7045.                 See  the menu command "DirV" for information on setting it up 
  7046.                 in a menu. 
  7047.  
  7048.                 When  called,   the  list  of titles will  be  displayed,   a 
  7049.                 selection  made,   and the information corresponding to  that 
  7050.                 selection/title will be shown. 
  7051.  
  7052.                 The  whole  system  is designed for you  to  create  whatever 
  7053.                 DIRECTRY's  you want--up to 99  of them.   I   have  included 
  7054.                 three samples: Unprotects, ANSI's, and Music Quotes.
  7055.  
  7056.                                                                          -148-
  7057.  
  7058.                 Use  HEADER  if  you  want the BBS logo  header  line  to  be 
  7059.                 displayed above each data item.   Use NOHEADER if  you do not 
  7060.                 want anything displayed above the data item (usually  implies 
  7061.                 the data item will handle it).   Anything else besides HEADER 
  7062.                 or NOHEADER will be displayed above the data item. 
  7063.  
  7064.                 You can use LINES.TXT codes in the data text.
  7065.  
  7066.                 Just  use  a text editor to create/modify the .T##  and  .D## 
  7067.                 files,   then  just  restart  the  BBS--the  .I##  files  are 
  7068.                 built/updated automatically. 
  7069.  
  7070.                 It  is  a very nice and powerful system once you realize  how 
  7071.                 simple it is.   But it is not quite as automatic/efficient as 
  7072.                 the  Text  File  Management  System.    But  it  can   handle 
  7073.                 everything from single line quotes to full screen ANSIs. 
  7074.  
  7075.                 See also: DirV, LINES.TXT
  7076.  
  7077.                                                                          -149-
  7078.  
  7079. USER VOTING     This software supports two types of user voting:  a  message-
  7080.                 based Peer Review system,  and an InfoForm-based sysop review 
  7081.                 system. 
  7082.  
  7083. Peer Review     Peer Review is a restriction system--to restrict users.
  7084.  
  7085.                 To turn it ON for all new users, set Attribute "0"  to ON for 
  7086.                 #NEWUSER  (you  will need  to do this again if you  ever  re-
  7087.                 initialize #NEWUSER).   To turn it  ON for a single user, set 
  7088.                 "0" to ON in that user's record with "User Maintenance". 
  7089.  
  7090.                 When reading mail,  when you, the sysop, hit "*", the message 
  7091.                 is  sent  to  a  review  file,  and the  user  is  tagged  as 
  7092.                 undergoing  Peer  Review.   Should you hit "*"   for  another 
  7093.                 message from a user undergoing Peer Review, then this message 
  7094.                 is also added to their review file. 
  7095.  
  7096.                 When  users  of a defined Security Level value  range log on, 
  7097.                 they may vote on these review files.  To lessen the hassle to 
  7098.                 those  users in the range,  they are only given one to do per 
  7099.                 logon.  Those already voted on are skipped, and users may not 
  7100.                 change their vote.  If the user hang's up while in the voting 
  7101.                 mode, their vote is cast as "Don't Care" for that review. 
  7102.  
  7103.                 At  each logon,  a  user undergoing Peer Review will be given 
  7104.                 the  tally so far and offered a chance to see what the voters 
  7105.                 see. 
  7106.  
  7107.                 When the number of positive or negative votes exceeds a value 
  7108.                 you specify,  then that user is said to have passed or failed 
  7109.                 Peer  Review.    They  will be given whatever  SL  value  you 
  7110.                 specified.  A  message will also be sent to them telling them 
  7111.                 they passed or failed. 
  7112.  
  7113.                 When a user passes or fails, that fact is recorded in the log 
  7114.                 for  all to see--so those who care about how the voting  went 
  7115.                 can  find  out.    The complete review  file  is  moved  into 
  7116.                 DEL_MSGS.TXT. 
  7117.  
  7118.                 This system can be useful for limiting beginner users.  It is 
  7119.                 also useful for accounting.   If you double-bytes-off a user, 
  7120.                 and  they  go below their ability to download,   this process 
  7121.                 discourages "jumping to another account"  and encourages  one 
  7122.                 to repair their account rather than abandon it. 
  7123.  
  7124.                 When  a  user  is undergoing Peer Review:  during  the  login 
  7125.                 process,   if  they do not have any mail waiting,   they  are 
  7126.                 offered a chance to see what the voters see. 
  7127.                 
  7128.                 See also: SETTINGS
  7129.  
  7130.                                                                          -150-
  7131.  
  7132. Sysop           Unfortunately, this software does not yet support the popular 
  7133. InfoForms       "User fills out InfoForms,  other users vote looking at those 
  7134.                 filled out InfoForms".  Maybe next version. 
  7135.  
  7136.                 What  it  does  have is something similar:   user  fills  out 
  7137.                 InfoForms,  and sysop decides whether to let user have higher 
  7138.                 access. 
  7139.  
  7140.                 It works pretty simply: you have new users (or those applying 
  7141.                 for higher access)  fill out one or more Questionaires.  Then 
  7142.                 you  use the view questionaire command to look through  them, 
  7143.                 deleting them, etc. 
  7144.  
  7145.                 When a user fills it out to your desires,  you later give him 
  7146.                 higher SL manually. 
  7147.  
  7148.                 This system is not as troublesome as it sounds.   And you get 
  7149.                 the most important part right:  the user fills out InfoForms.  
  7150.                 It's just the "voting"  system which is different from normal 
  7151.                 (and this is invisible to the user anyways). 
  7152.  
  7153.                 The  InfoForm  method  is nice because you get  to  use  some 
  7154.                 rather  nice looking ANSI questionaires.   However,  the Peer 
  7155.                 Review system lets you get more in-depth detail about a user, 
  7156.                 as  well  as a long sample of their writing (the  message(s)) 
  7157.                 which is a very good indicator of maturity. 
  7158.  
  7159.                 See also: MENU COMMANDS
  7160.  
  7161.                                                                          -151-
  7162.  
  7163. DATABASER       The DataBaser system is a sysop-designed data base system.
  7164.  
  7165.                 All  DataBaser  databases  rely on DB_BLKS.TXT  to  define  a 
  7166.                 database,  and the "DBEd"  or "DBVw"  menu commands to access 
  7167.                 the database.  This makes the whole system (mostly) free from 
  7168.                 any hardwired code. 
  7169.  
  7170.                 If you decide to take the time to understand this system, you 
  7171.                 will  be  able  to create custom databases  which  users  can 
  7172.                 access,  as well as being able to create database definitions 
  7173.                 which can be used to access data files from other programs. 
  7174.                 
  7175.                 Just  one thing to remember:  do not modify the stuctures  of 
  7176.                 any  databases  I  have pre-created.    They  all  have  very 
  7177.                 specific  coding  inside  the software to  use  certain  data 
  7178.                 structures. 
  7179.  
  7180.                 When  you List the contents of a database,  you can start the 
  7181.                 listing from any record by merely typing in the record number 
  7182.                 instead of the "L" for List at the command line. 
  7183.  
  7184.                 Many of the ready-made databases also offer up "!"  which let 
  7185.                 you access records using a scrollable window. 
  7186.                 
  7187. DB_BLKS.TXT     Each  DataBaser definition has a format along  the  following 
  7188. DataBaser       lines: 
  7189. Structure         Line   1: Descriptive text about the database.  Appears
  7190.                    ...      when the "DBEd" menu command is called.
  7191.                   Line   n: <end>
  7192.                   Line n+1: database's file name.
  7193.                   Line n+2: database's definition specs.
  7194.                   Line n+3: Question line to use when modifying.
  7195.                   Line n+4: The object name of the record type (subject of
  7196.                             the database).
  7197.                   Line n+5: Heading output text.  Appears at top of listing.
  7198.                    ...
  7199.                   Line   n: <end>
  7200.                   Line n+1: Body output specs.
  7201.                    ...
  7202.                   Line   n: <end>
  7203.                   Line n+1: Field to use for the windowed selector.
  7204.                   Line n+2 to end: text describing each field.
  7205.  
  7206.                 Example:
  7207.                   50Fuzzy Bear's data base of warez.
  7208.                   50
  7209.                   50<end>
  7210.                   50C:\BBS\GLOBAL\SYSTEM\FUZZY.DAT
  7211.                   50S12S40U
  7212.                   50record number :  
  7213.                   50warez
  7214.                   50               --------  Fuzzy'z Warez Data Baze -------->
  7215.  
  7216.                                                                          -152-
  7217.  
  7218.                   50 Rec ==File Name== ===============Description============== ========User=======>>
  7219.                   50<end>
  7220.                   50<04 <13 <40 <19~
  7221.                   50<end>
  7222.                   502
  7223.                   50File name
  7224.                   50Description
  7225.                   50User name
  7226.  
  7227.                 The "50" means this is block number 50 in DB_BLKS.TXT (and it 
  7228.                 comes only after block 49 and before block 51). 
  7229.  
  7230.                   50Fuzzy Bear's data base of warez.
  7231.                   50
  7232.                   50<end>
  7233.            
  7234.                 Is our description text.  It can be any number of lines,  but 
  7235.                 must  be at least two lines,  and the last line must  contain 
  7236.                 only  "<end>".   It may contain LINES.TXT codes.   A CR/LF is 
  7237.                 assumed after each line. 
  7238.                 
  7239.                 When this database is called, it will clear the screen, print 
  7240.                 the BBS heading,  print "Fuzzy Bear's data base of warez." in 
  7241.                 dark green letters,  skip a line,  then ask the "List,   Add, 
  7242.                 Modify, Delete, Insert, or [Enter] to quit" question. 
  7243.                 
  7244.                   50C:\BBS\GLOBAL\SYSTEM\FUZZY.DAT
  7245.  
  7246.                 This  is the file name in which we store our database.    You 
  7247.                 can specify any pathname you want. 
  7248.  
  7249.                   50S12S40U
  7250.  
  7251.                 This is the database's definition specs.   The following  are 
  7252.                 currently allowed: 
  7253.  
  7254.                   A   for an attribute field.  Inputs and displays attributes 
  7255.                       using "1234567890ABCDEF".
  7256.                   D   for a date field (dd-mmm-yy).  Odd is that you will see
  7257.                       dd-mmm-yy, but when entering the data you must use the
  7258.                       old mm/dd/yy format.
  7259.                   F   for file areas.  Input is for a 3 digit number, but 
  7260.                       output contains the number and the title of the area.
  7261.                   I   for an integer number (-32767 to 32767).
  7262.                   L   for a long number (-2,100,000,000 to 2,100,000,000).
  7263.                   M   for message areas.  Input is for a 3 digit number, but 
  7264.                       output contains the number and the title of the area.
  7265.                   N   for a net address (xxxxx:xxxxx/xxxxx).
  7266.                   S## for a string of length ##.  ## must be two digits.
  7267.                       Example: for a string of length 4, use S04.
  7268.                       S64 is special: it is considered to be a pathname, and
  7269.  
  7270.                                                                          -153-
  7271.  
  7272.                       will be created if it does not exist and the entry you 
  7273.                       make ends in a "\".
  7274.                   T   for a time field (HH:MM:SS).
  7275.                   U   for a users name.  The auto-name-detect is in effect
  7276.                       so only active BBS users names are allowed.  Use S30 
  7277.                       for non-auto-name-detect name fields.
  7278.                   W   for the seven days of the week (MTWRFSN).  "R" for
  7279.                       thursday and "N" for sunday.
  7280.                   anything else will cause trouble.
  7281.  
  7282.                 Our  example  describes a database of 3 fields:  a   size  12 
  7283.                 string field, a size 40 string field,  and a user name field.  
  7284.                 For  a total record length of 82  characters (user names  are 
  7285.                 limited to 30 characters). 
  7286.  
  7287.                 For those who need to know:  A,  D,  F, I,  M,  T,  and W are 
  7288.                 stored in 2 byte integer form,  L and P are 4 byte long form, 
  7289.                 U is a 30  byte string,  N  is a 6 byte string,  and S## is a 
  7290.                 string of length ##. 
  7291.  
  7292.                   50record number :  
  7293.  
  7294.                 This  is  the "modify which entry"  question fragment.    For 
  7295.                 adding,  deleting, inserting, etc. it asks "Modify which ..." 
  7296.                 and appends the above. 
  7297.  
  7298.                   50warez
  7299.  
  7300.                 This describes what we are working with.    It is  used  when 
  7301.                 listing.  As in "List of all warez." 
  7302.  
  7303.                   50               --------  Fuzzy'z Warez Data Baze -------->
  7304.                   50 Rec ==File Name== ===============Description============== ========User=======>>
  7305.                   50<end>
  7306.  
  7307.                 Is our header text.  It can be any number of lines,  but must 
  7308.                 be at least two lines,  and the last line must  contain  only 
  7309.                 "<end>".    It may contain LINES.TXT codes.   No CR/LF's  are 
  7310.                 added unless you put them in with ">". 
  7311.                 
  7312.                   50<04 <13 <40 <19~
  7313.                   50<end>
  7314.  
  7315.                 This is our output display definition line.   It contains two 
  7316.                 defining elements:   "<##"  which is the length to  use,  and 
  7317.                 everything in between.  For each definition in our definition 
  7318.                 specs,   there should be a corresponding "<##".   You  cannot 
  7319.                 not-do a field, but can not-show a field by using "<00".  The 
  7320.                 first  one is for the record number.   Two numeric digits are 
  7321.                 required (for example, not "<9", but rather "<09"). 
  7322.                 
  7323.                                                                          -154-
  7324.  
  7325.                 The  example  tells  the software to display a  line  of  the 
  7326.                 database  as so:   Turn bright green on,  display the  record 
  7327.                 number  in a area 4 characters wide,  display a blank  space, 
  7328.                 turn  bright  blue  on,  display the filename in  a  area  13 
  7329.                 characters wide, display a space,  display the description in 
  7330.                 an areas 40  characters wide,  display a space,  display  the 
  7331.                 user's name in an area 19 characters wide. 
  7332.  
  7333.                 We  could  have  used two spaces before  <13   and  used  <12 
  7334.                 instead, or no spaces before and <14 instead--since the field 
  7335.                 is only 12 characters in length, the first two will always be 
  7336.                 spaces. 
  7337.                 
  7338.                 The  <19  truncates our 30  length file name.   Output  lines 
  7339.                 cannot exceed 79  characters (the software  chops off anything 
  7340.                 longer). 
  7341.  
  7342.                 A "~" will be replaced by a CR/LF.
  7343.                  
  7344.                 All  lines  before  the <end>   are  merged  together  before 
  7345.                 handling  is done--so instead of thinking of it as a bunch of 
  7346.                 separate lines, think of it as one line broken up. 
  7347.  
  7348.                 When displaying, the following formats are used:
  7349.                   Time: fixed "00:00 xm" format.
  7350.                   User name, String: left justified.
  7351.                   Integer, Long numbers: right justified.
  7352.                   Days of week: MTWRFSN with "off" days getting a space.
  7353.                   Attributes: 1234567890ABCDEF with OFF bits getting a space.
  7354.                   File/Message areas: "### title" with title left justified,
  7355.                                       use <## to limit what you want to see.
  7356.                   Node address: "xxxxx:xxxxx/xxxxx" format.
  7357.  
  7358.                   502
  7359.  
  7360.                 When  accessing this database,  we may use "!"  to select  by 
  7361.                 field.    This line tells the software to use the  2nd  field 
  7362.                 (Description).    This line can only specify a S##   (string) 
  7363.                 field.    If  you have no string fields,  you should put a  0 
  7364.                 here. 
  7365.                 
  7366.                   50File name
  7367.                   50Description
  7368.                   50User name
  7369.  
  7370.                 These  are  the field names used  when  entering/modifying  a 
  7371.                 record.  Simple names, one for each definition spec.  You may 
  7372.                 include ANSI codes to colorize them. 
  7373.  
  7374.                 When entering a day of the week,  or attributes,  they can be 
  7375.                 in  any  order,   MRF need not be entered as "M R F  ",   for 
  7376.                 example. 
  7377.  
  7378.                                                                          -155-
  7379.  
  7380.                 Because it is easiest to start a new database by merely first 
  7381.                 copying  the definition of another database,  the most likely 
  7382.                 problem that occurs is that one forgets to change the blocks' 
  7383.                 numbers to give it a unique block number. 
  7384.  
  7385.                 The limits: 32,767  records with maximum record/field size of 
  7386.                 4096  bytes.   Maximum of 24  fields (any more screws up  the 
  7387.                 screen editing). 
  7388.  
  7389.                 I  know the above sounds rather technical,  but there are 50+ 
  7390.                 that you use already as part of the sysop menus that you  can 
  7391.                 use as examples. 
  7392.                 
  7393. Calling Via     Calling up a database involves using a "DBEd" or "DBVw"  menu 
  7394. Menus           commands. 
  7395.  
  7396.                 Any  user  with access will be able to do all  the  functions 
  7397.                 (List, Add, Modify, Delete, Insert, etc.) with "DBEd". 
  7398.  
  7399.                 Users  are only able to List the contents of a database using 
  7400.                 the "DBVw" menu command. 
  7401.  
  7402.                 See also: DBEd, DBVw
  7403.  
  7404. Modifying       When modifying the data, just hit [Enter] at the start of the 
  7405.                 line to not change what is already there.
  7406.                 
  7407.                 The  software will jump through hoops to try to keep  groups, 
  7408.                 Messages, Files, etc.  in proper order as you Delete/Add/etc. 
  7409.                 new areas.   However, commands that make a specific reference 
  7410.                 to  an  area are not adjusted,  and you may need to do it  by 
  7411.                 hand  later.   Example:  if using a "DOOR _15"  command on  a 
  7412.                 menu,  and then you delete door entry number 10--so what used 
  7413.                 to be door entry 15 got shifted to number 14. 
  7414.                 
  7415. More            When  listing,  lines that are just "S##"  commands that  are 
  7416.                 themselves empty,  are not displayed.  For example,  a  Title 
  7417.                 line,  which is an S50, is not displayed if it is blank.  The 
  7418.                 purpose  of  this  is reduce screen  clutter  of  unnecessary 
  7419.                 information. 
  7420.                 
  7421.                 EXAMPLE
  7422.                 ┌───────────────────────────────────────────────────────────┐
  7423.                 │ Let us create a "news items" database.  In which users    │
  7424.                 │ can add/delete/modify/list entries of news items they     │
  7425.                 │ think other users would be interested in.                 │
  7426.                 │                                                           │
  7427.                 │ Step 1                                                    │
  7428.                 │   Find a location for our DataBaser definition block in   │
  7429.                 │   DB_BLKS.TXT.  Usually just use the next one following   │
  7430.                 │   the last block in the file, for example, we will use    │
  7431.                 │   43.                                                     │
  7432.  
  7433.                                                                          -156-
  7434.  
  7435.                 │                                                           │
  7436.                 │ Step 2                                                    │
  7437.                 │   Create some informational text for whenever this        │
  7438.                 │   database is used.                                       │
  7439.                 │                                                           │
  7440.                 │   43Important news items you wish all to see.      │
  7441.                 │   43                                                      │
  7442.                 │   43<end>                                                 │
  7443.                 │                                                           │
  7444.                 │   This displays "Important news..." in dark green         │
  7445.                 │   coloring followed by a single blank line.               │
  7446.                 │                                                           │
  7447.                 │ Step 3                                                    │
  7448.                 │   Assign a file name to store our data.                   │
  7449.                 │                                                           │
  7450.                 │   43C:\BBS\GLOBAL\SYSTEM\NEWS.DAT                         │
  7451.                 │                                                           │
  7452.                 │ Step 4                                                    │
  7453.                 │   Define the data structure to use.  We want a more "free │
  7454.                 │   flowing" structure than normal.                         │
  7455.                 │                                                           │
  7456.                 │   43S72S72S72S72                                          │
  7457.                 │                                                           │
  7458.                 │   Which is 4 lines of length 72 (4 string fields of       │
  7459.                 │   length 72).  We could add more (or less) of these, we   │
  7460.                 │   could change their size, etc.  But this provides a good │
  7461.                 │   balance between drive space and entry size (each entry  │
  7462.                 │   will use 4 * 72 bytes of drive space).  Also, it is a   │
  7463.                 │   good size to fool the user into thinking they are not   │
  7464.                 │   entering into a database--as it will look like a text   │
  7465.                 │   file (when we are done).                                │
  7466.                 │                                                           │
  7467.                 │ Step 5                                                    │
  7468.                 │   Now we enter the text for the question when a user      │
  7469.                 │   selects to modify a record.                             │
  7470.                 │                                                           │
  7471.                 │   43news item (1..n top down)?                       │
  7472.                 │                                                           │
  7473.                 │ Step 6                                                    │
  7474.                 │   Identifying the record.  "What it is"  we are adding,   │
  7475.                 │   etc.  This is meant to be a singular noun.              │
  7476.                 │                                                           │
  7477.                 │    43news item                                            │
  7478.                 │                                                           │
  7479.                 │ Step 7                                                    │
  7480.                 │   Create a heading.                                       │
  7481.                 │                                                           │
  7482.                 │   4326                            News items of    │
  7483.                 │   43 interest.>>                                        │
  7484.                 │   43<end>                                                 │
  7485.                 │                                                           │
  7486.                 │   We output "News items of interest.<ret><ret>" in bright │
  7487.                 │   green for our heading.                                  │
  7488.  
  7489.                                                                          -157-
  7490.  
  7491.                 │                                                           │
  7492.                 │ Step 8                                                    │
  7493.                 │   Design the record display line.  Here is where we take  │
  7494.                 │   advantage of some of the DataBaser system's qualities.  │
  7495.                 │                                                           │
  7496.                 │   43<00    <72~    <72~    <72~    <72~                   │
  7497.                 │   43<end>                                                 │
  7498.                 │                                                           │
  7499.                 │   We use "    <72~" to print out each of the record lines │
  7500.                 │   with 4 spaces in front and a CR/LF afterwards.  If the  │
  7501.                 │   line/field is blank, then DataBaser will not output it, │
  7502.                 │   because it does not output lines with only one field,   │
  7503.                 │   and with that field blank.  The "<00" says to not       │
  7504.                 │   output the record number (actually, it says "output the │
  7505.                 │   record number into a field of size 0).  The last "~"    │
  7506.                 │   will result in an extra CR/LF between the outputted     │
  7507.                 │   records.                                                │
  7508.                 │                                                           │
  7509.                 │   So, now when we list, it will list all entries,         │
  7510.                 │   separated by a blank line.  It will only list as many   │
  7511.                 │   lines per entry as contain data.  Example: an entry     │
  7512.                 │   with 2 lines of text shows only 2 lines, etc.  Not a    │
  7513.                 │   steady 4 lines per output record, even though the       │
  7514.                 │   record can work with up 4 lines--by stopping output of  │
  7515.                 │   "blank" lines, the actual number of displayed lines     │
  7516.                 │   will vary with the number of fields witch actually      │
  7517.                 │   contain data.                                           │
  7518.                 │                                                           │
  7519.                 │   43}7<02  <72~    <72~    <72~    <72~          │
  7520.                 │   43<end>                                                 │
  7521.                 │                                                           │
  7522.                 │   Could be used to display the item number as well.       │
  7523.                 │   Above the items appear in the default dark white color, │
  7524.                 │   here we turn on dark blue for the number, and dark      │
  7525.                 │   white back on for the text.                             │
  7526.                 │                                                           │
  7527.                 │   Remember, this entry does not define how each line of a │
  7528.                 │   record is to be displayed, but rather how the whole     │
  7529.                 │   record is to be displayed.                              │
  7530.                 │                                                           │
  7531.                 │   43<00|o| <72|o|~|o| <72|o|~|o| <72|o|~|o| <72|o|        │
  7532.                 │   43                                 <*-+-*>              │
  7533.                 │   43                                 |o|                  │
  7534.                 │   43<end>                                                 │
  7535.                 │                                                           │
  7536.                 │   This is another example.  This displays each item in a  │
  7537.                 │   "paper feeder" like format.  With a short design as a   │
  7538.                 │   separator.  Remember that the lines are all linked      │
  7539.                 │   together to form a single string.                       │
  7540.                 │                                                           │
  7541.                 │ Step 9                                                    │
  7542.                 │   We have no fields which could be used to select records │
  7543.                 │   with the windowed selector, so we just use:             │
  7544.  
  7545.                                                                          -158-
  7546.  
  7547.                 │                                                           │
  7548.                 │   430                                                     │
  7549.                 │                                                           │
  7550.                 │ Step 10                                                   │
  7551.                 │   Because we have defined four fields (S72 * 4) we must   │
  7552.                 │   now give each a name (for when we add/modify the        │
  7553.                 │   entry).                                                 │
  7554.                 │                                                           │
  7555.                 │   43Item                                                  │
  7556.                 │   43Item                                                  │
  7557.                 │   43Item                                                  │
  7558.                 │   43Item                                                  │
  7559.                 │                                                           │
  7560.                 │   When adding/modifying an entry, we will be adding to 4  │
  7561.                 │   fields with the same name.  But because the whole       │
  7562.                 │   record is considered a single news item, this is quite  │
  7563.                 │   appropriate.                                            │
  7564.                 │                                                           │
  7565.                 │ Finally                                                   │
  7566.                 │   We have completed a new database.  Now we just give it  │
  7567.                 │   an entry on a menu's ANSI, and a matching entry in      │
  7568.                 │   McEditor with the command "DBEd _B43".  Review the menu │
  7569.                 │   system for help with this procedure.                    │
  7570.                 │                                                           │
  7571.                 │ NOTE                                                      │
  7572.                 │   While this database was designed to let users add       │
  7573.                 │   entries, you can utilize it as your primary news file   │
  7574.                 │   as well.  Either replace the "Dnws" with a "DBVw" or    │
  7575.                 │   add a "DBVw" command before or after "Dnws".  Then when │
  7576.                 │   users log on, they will get a listing of your news      │
  7577.                 │   DataBaser contents.                                     │
  7578.                 │                                                           │
  7579.                 │   One drawback with this database--any user can modify    │
  7580.                 │   any other user's news item.  Well, it might actually be │
  7581.                 │   useful here, but it would be disastrous if this were,   │
  7582.                 │   say, a Buy/Sell/Swap database.                          │
  7583.                 └───────────────────────────────────────────────────────────┘
  7584.                 
  7585.                                                                          -159-
  7586.  
  7587. LIFE & DEATH    There  are many aspects to this capability,  as it  has  many 
  7588. DELETE          requirements   and  conditions  that  must  be  met  to  both 
  7589.                 implement it and for a user to use it. 
  7590.  
  7591.                 This section only covers L&D Delete,  the Life & Death system 
  7592.                 is  better  explained in the Toggles and Menu Commands  which 
  7593.                 implement it. 
  7594.  
  7595.                 To implement it:
  7596.                   Set the toggle to allow it to ON.
  7597.                   In  "Change Settings", set a minimum amount of drive  space 
  7598.                   before this becomes active, and set a minimum user SL value 
  7599.                   who may use it. 
  7600.                   In your menus,  have an entry for "Asst"  (usually in  your 
  7601.                   login  loop).   Use an "ifSL"  entry to give it the same SL 
  7602.                   value as we do in "Change Settings". 
  7603.                   You  may also need to specify a file contents listing  form 
  7604.                   type directive to display the L&D value for each file. 
  7605.                 To remove it:
  7606.                   Set the toggle to allow it to OFF.
  7607.                   Remove the "Asst" menu entry.
  7608.  
  7609.                 Every thing is individual.   "Asst"  will display the AI help 
  7610.                 request to anybody,   which is why we set the SL field in the 
  7611.                 menu command itself.  When using the L&D system, any user may 
  7612.                 attempt to delete it--which is why there is a Change Settings 
  7613.                 SL value.   That user could do it at any time,  which is  why 
  7614.                 there  is  a "only if less than this amount of  drive  space" 
  7615.                 Change Settings field. 
  7616.  
  7617.                 It is complex because it needs to be.  This capability allows 
  7618.                 users to delete files from your download directories.  So you 
  7619.                 must  be  able to define who can delete, and when they can do 
  7620.                 it. 
  7621.  
  7622.                 Users  will not be able to use L&D Delete to delete files  in 
  7623.                 "CD" File Areas (those with Attribute 9 ON). 
  7624.                 
  7625.                                                                          -160-
  7626.  
  7627. MULTI-NODE      This software has complete multi-node capabilities. 
  7628. OPERATIONS      
  7629.                 To use it under multiple nodes,  you will need a multi-tasker 
  7630.                 like DesqView, Windows, OS/2, etc. 
  7631.  
  7632.                 SHARE.EXE will need to be installed for multi-node operations 
  7633.                 under MS-DOS and DesqView (not sure about Windows, or OS/2). 
  7634.  
  7635.                 See the HELP directory for sample DV and Windows .PIF files.
  7636.  
  7637.                 One thing that should really be useful is a "sysop node"--you 
  7638.                 set up a node that nobody can contact via the phone, and just 
  7639.                 switch  to  that multi-task window when you  want  to  logon.  
  7640.                 This allows you to avoid waiting to access your own BBS. 
  7641.  
  7642.                 Steps to making a Node 2:
  7643.                 
  7644.                   1) copy  the whole NODE001\ tree into a NODE002\.   If  the 
  7645.                      second node is just for you, you don't have to copy over 
  7646.                      any Styles\Languages you don't use.   The main thing  we 
  7647.                      want is that NODE002\TEMP\ directory. 
  7648.                   2) copy  BBS001.BAT  to BBS002.BAT.   Then edit  it  so  it 
  7649.                      contains /NODE=2 rather than /NODE=1. 
  7650.                   3) now restart node 1 as normal (BBS001.BAT).  Then go into 
  7651.                      "Change Settings",  and change the Node number from 1 to 
  7652.                      2.  This will create a SETTINGS.002 file. 
  7653.                   4) Log  out  of node 1 as normal.   Then with  your  multi-
  7654.                      tasker  switch  to/create a task for node 2.   Then  run 
  7655.                      BBS002.BAT from that task.
  7656.  
  7657.                 Thus,  you now have two nodes.  BBS001 starts node 1,  BBS002 
  7658.                 starts node 2. 
  7659.  
  7660.                 If  your node 2 is a sysop-only node,  you'll want to  change 
  7661.                 its  comm  port  right  away to  0  (local-only  operations).  
  7662.                 Although if you have two modems installed,  you can also just 
  7663.                 use that comm port (maybe for calling out, etc.). 
  7664.  
  7665.                 If  you use the sample .PIF's you will probably be OK.    But 
  7666.                 feel  free to play around.   It is important that you have  a 
  7667.                 good idea of how to use your multi-tasker before trying this. 
  7668.  
  7669.                 More  than  one node is more work.   You  need  to  implement 
  7670.                 multi-node modes for many door games, for example. 
  7671.  
  7672.                 The  main  thing to remember about multi-node  operations  is 
  7673.                 that when you change things for one node,  to remember to  do 
  7674.                 it  for the other nodes as well.   Such things  include  menu 
  7675.                 commands, text, and ANSI files. 
  7676.  
  7677.                 Multi-line   BBS's  have  a  few  pitfalls  that  it  is  the 
  7678.                 responsibility of the sysop to avoid: 
  7679.  
  7680.                                                                          -161-
  7681.                 
  7682.                   One pitfall is lack of drive  space--always  make sure your 
  7683.                   basic empty space is enough  for all the nodes (about 1 meg 
  7684.                   per node should be available free on disk at all times). 
  7685.                   
  7686.                   With events: that you specify a node for each. 
  7687.                   
  7688.                   With   net  mail:   that  you  don't  have  multiple  nodes 
  7689.                   sending/receiving for the same zone at the same time. 
  7690.  
  7691.                 Important: The Settings and Toggles are node-independent, you 
  7692.                 can change these for each node.  Example: you could toggle on 
  7693.                 "must  validate uploads"  for node 1,  and toggle it off  for 
  7694.                 node 2.   Pathnames,  however,  are not (which is why we have 
  7695.                 the "???" and "***" specifiers). 
  7696.  
  7697.                 Never shell to DOS and modify the various BBS-use block  text 
  7698.                 files (TXT_BLKS/DB_BLKS/etc.).  You must do a full exit, then 
  7699.                 edit them,  and then restart the BBS (all nodes).  The reason 
  7700.                 is  simple:  the software maintains an index of where each of 
  7701.                 these  blocks  start  in  the text file--adding  or  removing 
  7702.                 characters screws up this index, and could really mess things 
  7703.                 up. 
  7704.  
  7705.                 When  you restart the BBS,  restart it in an orderly fashion: 
  7706.                 wait  till  node  1 is up and going (at or past WFC)   before 
  7707.                 going on to node 2, etc. 
  7708.  
  7709.                 There are some things that when you change you should restart 
  7710.                 all nodes so they learn about the changes:
  7711.                 
  7712.                   When  you  change LINES.TXT,  TXT_BLKS.TXT,   SYS_BLKS.TXT, 
  7713.                   PRG_BLKS.TXT, DB_BLKS.TXT, SHORT.TXT. 
  7714.  
  7715.                   When you add/delete Security Levels,  Message Areas,   File 
  7716.                   Areas.   If you do something minor,  like change the number 
  7717.                   of access minutes for an SL,  then there is no reason to go 
  7718.                   through the hassle of restarting the  BBS--the  other nodes 
  7719.                   will get that minor change eventually. 
  7720.  
  7721.                   When you change pathnames in Alter Pathnames.
  7722.  
  7723.                 You  may want to make the Trap All and Trap Chat  files  node 
  7724.                 dependent.  It depends on how much you use trapping. 
  7725.  
  7726.                 See also:  FILE AREAS, LANGUAGES/STYLES
  7727.  
  7728.                                                                          -162-
  7729.  
  7730. INTERNAL NETS   These  are networks between two or more computers.   Such  as 
  7731.                 linking up all the computers in your home. 
  7732.  
  7733.                 For all of the above,  you should not specify a "0"  for comm 
  7734.                 port.  They must point to valid comm ports to work properly. 
  7735.                 
  7736. Null Link       This involves connecting computers via a null modem and using 
  7737.                 JDR_BBS as a medium on one or more of your computers. 
  7738.                 
  7739.                 You must specify in your fossil driver line each port.    For 
  7740.                 instance,   I  have an old HST connected to COM1  and a  null 
  7741.                 modem  connected  to COM2,  and use the following  CONFIG.SYS 
  7742.                 line: 
  7743.                 
  7744.                   driver = x00.sys b,0,19200 b,1,19200 r=4096 t=2048 e 2
  7745.  
  7746.                 Which locks the baud rate of the old HST (b,0,19200)  on COM1 
  7747.                 and the null port (b,1,19200) on COM2. 
  7748.  
  7749.                 There  are  two ways to connect up two computers via  a  null 
  7750.                 modem using JDR_BBS. 
  7751.  
  7752.                 The  first  method  is for when both  computers  are  running 
  7753.                 JDR_BBS.    This  involves  going  to the  waiting-for-caller 
  7754.                 screen of  both computers,  and selection <alt>p and changing 
  7755.                 two  whatever  comm  port  the null modems are connected  to.  
  7756.                 This is a hard link,  from which you can use <alt>s,  <pgup>, 
  7757.                 or <pgdn> only. 
  7758.  
  7759.                 The second method involves JDR_BBS being on one computer  run 
  7760.                 as  a  straight BBS,  and JDR_BBS on the  other  computer  in 
  7761.                 <alt>d.    For  both computers,  you will need to  first  use 
  7762.                 "Change Settings"  to set the comm port to your null  modem--
  7763.                 you  will need to  repeat this step when you are done.   This 
  7764.                 allows you to use all the <alt>d commands. 
  7765.                 
  7766.                 You can mix and match the above, <alt>p, <alt>d, Settings, it 
  7767.                 does  not really matter.   What matters is that you get  both 
  7768.                 computers pointing to your null modem. 
  7769.                 
  7770.                 It might  be  more convenient to set  up  multi-tasked "sysop 
  7771.                 nodes"   on  each computer already pre-configured as  a  null 
  7772.                 modem  connection.   Giving it no timer ticks until you  need 
  7773.                 it. 
  7774.  
  7775. LANs            LANs  are computers networked together using something like a 
  7776.                 LAN card. 
  7777.  
  7778.                 LANs  hooked up as a way of storing your on-line  files,   or 
  7779.                 with each computer handling a node is no problem at all. 
  7780.  
  7781.                                                                          -163-
  7782.  
  7783.                 But  if  you want the networked computer to act like  a  dumb 
  7784.                 terminal to the BBS,  then you need to configure the LAN card 
  7785.                 like  a  comm port.   That is,  the software  will  send  and 
  7786.                 receive  data only to comm ports..   So if you can  configure 
  7787.                 your LAN card to work via a fossil like X00,  it will have no 
  7788.                 trouble  acting  like a sysop-only type node.    There  is  a 
  7789.                 Miscellaneous  Toggle related to this.   When this toggle  is 
  7790.                 ON,  the BBS will not try to reset the  modem  for that node, 
  7791.                 and  will simply wait at the login screen until a  user  logs 
  7792.                 in. 
  7793.                 
  7794. Null LAN        For lack of a better term.
  7795.                   
  7796.                   Interlink  was  real easy to set up.  First,  on your  main 
  7797.                   system, (the one with the BBS on it)  all you have to do is 
  7798.                   add "Device=c:\dos\interlink"  to your config.sys.   On the 
  7799.                   second  machine,  just type "intersvr"  at the dos  prompt. 
  7800.                   Thats all there is to it.  When the first machine (the main 
  7801.                   one)   is booted up again,  it searches the second one  and 
  7802.                   adds  all the drives on that machine to the main one.  That 
  7803.                   is, you can now access the second machine's drives from the 
  7804.                   first one.  In the BBS, all you do is change the individual 
  7805.                   file  areas to point to a drive on the other system to  use 
  7806.                   it as a file server. If I got you confused here, I'm sorry. 
  7807.                   It's  really quite easy.  The only added expense is  buying 
  7808.                   the interlink cable. It cost me 8.99 at radio shack. It was 
  7809.                   made  just for interlink.  The only drawbacks are that  the 
  7810.                   second machine is now only a file server. You can't use the 
  7811.                   system cause when you take it out of interserver mode,   it 
  7812.                   breaks  the  connection.  Also,  getting a printer to  work 
  7813.                   might be a little tricky. I had to tell my printer software 
  7814.                   to use "lpt2_dos"  as a port to get it to work.  Other than 
  7815.                   that  it really is a lifesaver of a program.  It  frees  my 
  7816.                   main  system's  hard drive up to do more with.  I  use  the 
  7817.                   other system strictly as a second hard drive for the board. 
  7818.                   
  7819.                                                               --Roland Parent
  7820.  
  7821.                   It frees a possible Stacker drive (which normally would  be 
  7822.                   very inefficient  with File Areas),  and allows one  to get 
  7823.                   around the 2 drive IDE limit.   The cable Roland mentions I 
  7824.                   think is just a null modem and connecting cable. 
  7825.  
  7826.                                                                          -164-
  7827.  
  7828. FILE            With  all the I/O being done,  it is inevitable that you  are 
  7829. CORRUPTION      going to get some sort of file corruption. 
  7830.  
  7831.                 Executing a: CHKDSK /F  will fix these problems.
  7832.  
  7833.                 However,   CHKDSK  may  fix  it by increasing  a  files  size 
  7834.                 (particularly for allocation errors).  For text files this is 
  7835.                 not  a  problem.    For  the USERS.HDR,   FILELIST.HDR,   and 
  7836.                 MESSAGES.HDR,   you  should  run  the  appropriate  integrity 
  7837.                 testing command.  For  other  .DAT  files,  you can use their 
  7838.                 DataBaser  menu  commands  to edit them to find  any  visible 
  7839.                 problems. 
  7840.                 
  7841.                 If  you  have Trap All ON,  and shell to DOS and  delete  the 
  7842.                 SESSION.LOG  file,  you most likely will get a fatal  "sector 
  7843.                 not found on drive d:"  and have to reboot the system.   This 
  7844.                 occurs  because I do not close my files when shelling to DOS.  
  7845.                 The reason I do not close them is because <alt>s could be hit 
  7846.                 anywhere,  and I have no way of knowing which files are open.  
  7847.                 DOS does not like you deleting its opened files. 
  7848.  
  7849.                 If  any of the .IDX index files become corrupt,  just  delete 
  7850.                 them  and restart the BBS,  they will then be recreated  (you 
  7851.                 should restart all nodes).  You can tell the users index, for 
  7852.                 example,  is corrupt if you are not allowed to enter what you 
  7853.                 know to be a valid user's name, or if the data returned about 
  7854.                 an account is wrong,  or that of another user.   You can tell 
  7855.                 the  files index is corrupt,  for example,  if after entering 
  7856.                 two characters of a filename to download the system crashes. 
  7857.  
  7858.                 Generally, if something is acting bad with messages or files, 
  7859.                 its usually that a .IDX file got messed up. 
  7860.  
  7861.                 File corruption doesn't occur a lot.  But computers today are 
  7862.                 increasingly hostile places for files.  Virus's, for example, 
  7863.                 have  ballooned  into a real threat.   You should  make  some 
  7864.                 effort  to back up your BBS regularly.   By far,  the reasons 
  7865.                 most  BBS's go down is a)  because the sysop got tired of it, 
  7866.                 and b) because the HD crashed. 
  7867.  
  7868.                                                                          -165-
  7869.  
  7870. SPECIAL THANKS  To  the users of Immortality--who have been putting  up  with 
  7871.                 oft-times flaky software and a non-attentive sysop  for three 
  7872.                 years now as I have developed this software. 
  7873.  
  7874.                 Ray Elquist.   Who, despite being long distance,  was largely 
  7875.                 responsible  for beta testing .09.   His many  found bugs and 
  7876.                 ideas  have  caused the long delay between the .08   and  .09 
  7877.                 releases, but the program is much better because of his help. 
  7878.  
  7879.                 Bob Ratliff.   Who seems to be spending so much time  testing 
  7880.                 BBS   programs  that  I  wonder  why  he  registered.     His 
  7881.                 dissatisfaction has made the .10 version easier to use. 
  7882.  
  7883.                                                                          -166-
  7884.  
  7885. NEXT            There are docs, doc files,  and help files hiding everywhere.  
  7886.                 If  you really want to read more docs,  then seek those  out.  
  7887.                 But  no  hurry,   play with the software some  more--it  gets 
  7888.                 better the more you use it. 
  7889.  
  7890.  
  7891.